update check_kontor.py to call Kontor API

This commit is contained in:
Thomas Peetz
2025-04-18 00:09:30 +02:00
parent a6eeea6c1f
commit 116bb77e4c
8 changed files with 168 additions and 78 deletions
-16
View File
@@ -1,16 +0,0 @@
from uuid import UUID
from pydantic import BaseModel
class MediaFileResponse(BaseModel):
id: UUID
title: str | None = None
file_name: str | None = None
cloud_link: str | None = None
url: str
review: bool = False
should_download: bool = False
class Link(BaseModel):
url: str
+28
View File
@@ -0,0 +1,28 @@
from uuid import UUID
from app.schema.media import MediaFile
from pydantic import BaseModel
class MediaFileResponse(BaseModel):
id: UUID
title: str | None = None
file_name: str | None = None
cloud_link: str | None = None
url: str
review: bool = False
should_download: bool = False
class Link(BaseModel):
url: str
def get_file_details(mediafile: MediaFile) -> MediaFileResponse | None:
response = MediaFileResponse(id=mediafile.id,
title=mediafile.title,
file_name=mediafile.file_name,
cloud_link=mediafile.cloud_link,
url=str(mediafile.url),
review=(mediafile.review == 1),
should_download=(mediafile.should_download == 1))
return response
+10 -2
View File
@@ -5,7 +5,7 @@ from uuid import uuid4, UUID
from fastapi import APIRouter, status, HTTPException
from sqlalchemy import select, Sequence
from app.models.media import MediaFileResponse, Link
from app.models.media.file import MediaFileResponse, Link, get_file_details
from app.schema import MediaFile, SessionDep
router = APIRouter(
@@ -33,7 +33,7 @@ def update_titles(db: SessionDep) -> list[MediaFileResponse]:
@router.get("/files", response_model=List[MediaFileResponse])
def get_files(db: SessionDep, review: bool = False, download: bool = False) -> List[MediaFileResponse]:
def get_all_files(db: SessionDep, review: bool = False, download: bool = False) -> List[MediaFileResponse]:
results: list[MediaFileResponse] = []
files: Sequence[MediaFile]
if review:
@@ -53,6 +53,14 @@ def get_files(db: SessionDep, review: bool = False, download: bool = False) -> L
results.append(response)
return results
@router.get("/files/{file_id}", response_model=MediaFileResponse)
def get_file(file_id: UUID, db: SessionDep) -> MediaFileResponse:
mediafile = db.get(MediaFile, file_id)
if not mediafile:
raise HTTPException(status_code=404, detail="MediaFile could not be found")
response = get_file_details(mediafile)
return response
@router.put("/files/{file_id}", response_model=MediaFileResponse)
def update_file(file_id: UUID, db: SessionDep, info: MediaFileResponse) -> MediaFileResponse:
mediaFile = db.get(MediaFile, file_id)