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//image-preview') class UnsupportedFileTypeError(BaseHTTPException): error_code = 'unsupported_file_type' description = "File type not allowed." code = 415