12345678910111213141516171819202122232425262728293031323334353637383940 |
- from flask import request, Response
- from flask_restful import Resource
- import services
- from controllers.files import api
- from libs.exception import BaseHTTPException
- from services.file_service import FileService
- class ImagePreviewApi(Resource):
- def get(self, file_id):
- file_id = str(file_id)
- timestamp = request.args.get('timestamp')
- nonce = request.args.get('nonce')
- sign = request.args.get('sign')
- if not timestamp or not nonce or not sign:
- return {'content': 'Invalid request.'}, 400
- try:
- generator, mimetype = FileService.get_image_preview(
- file_id,
- timestamp,
- nonce,
- sign
- )
- except services.errors.file.UnsupportedFileTypeError:
- raise UnsupportedFileTypeError()
- return Response(generator, mimetype=mimetype)
- api.add_resource(ImagePreviewApi, '/files/<uuid:file_id>/image-preview')
- class UnsupportedFileTypeError(BaseHTTPException):
- error_code = 'unsupported_file_type'
- description = "File type not allowed."
- code = 415
|