| 123456789101112131415161718192021222324252627282930313233343536 | from flask import requestfrom flask_restful import marshal_withimport servicesfrom controllers.web import apifrom controllers.web.error import FileTooLargeError, NoFileUploadedError, TooManyFilesError, UnsupportedFileTypeErrorfrom controllers.web.wraps import WebApiResourcefrom fields.file_fields import file_fieldsfrom services.file_service import FileServiceclass FileApi(WebApiResource):    @marshal_with(file_fields)    def post(self, app_model, end_user):        # get file from request        file = request.files['file']        # check file        if 'file' not in request.files:            raise NoFileUploadedError()        if len(request.files) > 1:            raise TooManyFilesError()        try:            upload_file = FileService.upload_file(file, end_user)        except services.errors.file.FileTooLargeError as file_too_large_error:            raise FileTooLargeError(file_too_large_error.description)        except services.errors.file.UnsupportedFileTypeError:            raise UnsupportedFileTypeError()        return upload_file, 201api.add_resource(FileApi, '/files/upload')
 |