Add create_file endpoint

This commit is contained in:
2021-11-13 20:17:56 +03:00
parent 908834bd90
commit 9273fc80e9
2 changed files with 20 additions and 7 deletions

View File

@@ -1,6 +1,12 @@
from datetime import datetime
from pydantic import BaseModel
from pydantic import BaseModel, constr
class CreateUploadedFile(BaseModel):
backend: constr(max_length=16) # type: ignore
data: dict
upload_time: datetime
class UploadedFile(BaseModel):

View File

@@ -3,24 +3,24 @@ from starlette import status
from fastapi import APIRouter, HTTPException
from app.models import UploadedFile as UploadedFileDB
from app.serializers import UploadedFile
from app.serializers import UploadedFile, CreateUploadedFile
from app.services.file_uploader import FileUploader
from app.depends import check_token
router = APIRouter(
prefix="/api/v1",
prefix="/api/v1/files",
dependencies=[Depends(check_token)],
tags=["files"]
)
@router.get("/files", response_model=list[UploadedFile])
@router.get("/", response_model=list[UploadedFile])
async def get_files():
return await UploadedFileDB.objects.all()
@router.get("/files/{file_id}", response_model=UploadedFile, responses={
@router.get("/{file_id}", response_model=UploadedFile, responses={
404: {},
})
async def get_file(file_id: int):
@@ -32,12 +32,19 @@ async def get_file(file_id: int):
return uploaded_file
@router.post("/files", response_model=UploadedFile)
@router.post("/", response_model=UploadedFile)
async def create_file(data: CreateUploadedFile):
return await UploadedFileDB.objects.create(
**data.dict()
)
@router.post("/upload/", response_model=UploadedFile)
async def upload_file(file: UploadFile = File({})):
return await FileUploader.upload(file)
@router.delete("/files/{file_id}", response_model=UploadedFile, responses={
@router.delete("/{file_id}", response_model=UploadedFile, responses={
400: {}
})
async def delete_file(file_id: int):