add removal of remaining items by calling API
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from fastapi import APIRouter, status, HTTPException, Depends
|
||||
from sqlalchemy import select, Sequence
|
||||
from src.core.log_conf import logger
|
||||
from src.db.repository.media import create_new_mediaactorfile, create_new_mediafile
|
||||
from src.db.repository.media import create_new_mediaactorfile, create_new_mediafile, delete_mediafile
|
||||
from src.db.session import SessionDep
|
||||
from src.schema.media.actor import MediaActorResponse
|
||||
from src.schema.media.actorfile import MediaActorFileResponse
|
||||
@@ -47,6 +47,17 @@ def get_file(file_id: str, db: SessionDep) -> MediaFileResponse:
|
||||
response = get_file_details(mediafile)
|
||||
return response
|
||||
|
||||
@router.delete("/files/{file_id}", status_code=status.HTTP_204_NO_CONTENT)
|
||||
def delete_file(file_id: str, db: SessionDep):
|
||||
mediafile = db.get(MediaFile, file_id)
|
||||
if not mediafile:
|
||||
raise HTTPException(status_code=404, detail="MediaFile could not be found")
|
||||
logger.info(f"delete MediaFile: {file_id}")
|
||||
actor_files = mediafile.media_actor_files
|
||||
logger.info(f"MediaActorFiles links {len(actor_files)}")
|
||||
if len(actor_files) == 0:
|
||||
delete_mediafile(db, mediafile.id)
|
||||
|
||||
@router.get("/files/{file_id}/actors", response_model=list[MediaActorResponse])
|
||||
def get_file_actors(file_id: str, db: SessionDep) -> list[MediaActorResponse]:
|
||||
mediafile = db.get(MediaFile, file_id)
|
||||
|
||||
@@ -38,6 +38,12 @@ def create_new_mediafile(link: str, db: Session) -> MediaFile:
|
||||
logger.info(f"created {media_file}")
|
||||
return media_file
|
||||
|
||||
def delete_mediafile(db: Session, media_file_id: str):
|
||||
logger.info(f"delete MediaFile with id {media_file_id}")
|
||||
media_file = db.get(MediaFile, media_file_id)
|
||||
db.delete(media_file)
|
||||
db.commit()
|
||||
|
||||
def create_new_mediaactor(new_actor: Actor, db: Session) -> MediaActor:
|
||||
logger.info(f"create MediaActor with url {new_actor.url}")
|
||||
media_actor: MediaActor = MediaActor()
|
||||
|
||||
Reference in New Issue
Block a user