from typing import Any, Optional from uuid import UUID from fastapi import Body, UploadFile, File from config import conf from core.app import app from core.utils.router import generate_router, safe_route from upload.models import FileModel from upload.repositories.upload import UploadRepository router = generate_router("file", auth_dependencies=True, version='v2') _tag_base = ['file'] _pre = conf.server.prefix_url.replace('v1', 'v2') @router.post('/upload', response_model=FileModel, tags=_tag_base) async def upload(file: UploadFile = File(...), payload: Optional[Any] = Body(None), module: Optional[str] = Body(None)): return await safe_route('upload', UploadRepository.upload, file, payload, module) @app.get(f'{_pre}' + '/file/{_id}', tags=_tag_base) async def upload(_id: UUID): return await UploadRepository.get_file(_id) app.include_router(router)