| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | 
							- from flask import Response, request
 
- from flask_restful import Resource
 
- from werkzeug.exceptions import NotFound
 
- import services
 
- from controllers.files import api
 
- from libs.exception import BaseHTTPException
 
- from services.account_service import TenantService
 
- 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)
 
-     
 
- class WorkspaceWebappLogoApi(Resource):
 
-     def get(self, workspace_id):
 
-         workspace_id = str(workspace_id)
 
-         custom_config = TenantService.get_custom_config(workspace_id)
 
-         webapp_logo_file_id = custom_config.get('replace_webapp_logo') if custom_config is not None else None
 
-         if not webapp_logo_file_id:
 
-             raise NotFound('webapp logo is not found')
 
-         try:
 
-             generator, mimetype = FileService.get_public_image_preview(
 
-                 webapp_logo_file_id,
 
-             )
 
-         except services.errors.file.UnsupportedFileTypeError:
 
-             raise UnsupportedFileTypeError()
 
-         return Response(generator, mimetype=mimetype)
 
- api.add_resource(ImagePreviewApi, '/files/<uuid:file_id>/image-preview')
 
- api.add_resource(WorkspaceWebappLogoApi, '/files/workspaces/<uuid:workspace_id>/webapp-logo')
 
- class UnsupportedFileTypeError(BaseHTTPException):
 
-     error_code = 'unsupported_file_type'
 
-     description = "File type not allowed."
 
-     code = 415
 
 
  |