30 lines
879 B
Python
30 lines
879 B
Python
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)
|