diff --git a/kontor-api/src/apis/version1/mediaactor.py b/kontor-api/src/apis/version1/mediaactor.py index 20aa4dc..ec2c236 100644 --- a/kontor-api/src/apis/version1/mediaactor.py +++ b/kontor-api/src/apis/version1/mediaactor.py @@ -31,7 +31,11 @@ def delete_actor(actor_id: str, db: SessionDep): # type: ignore media_actor = db.get(MediaActor, actor_id) if not media_actor: raise HTTPException(status_code=404, detail="MediaActor could not be found") - delete_mediaactor(db, media_actor.id) + logger.info(f"delete MediaActor: {actor_id}") + actor_files = media_actor.media_actor_files + logger.info(f"MediaActorFiles links {len(actor_files)}") + if len(actor_files) == 0: + delete_mediaactor(db, media_actor.id) @router.post("/actors", status_code=status.HTTP_201_CREATED) def add_actor(new_actor: Actor, db: SessionDep) -> MediaActorResponse: # type: ignore diff --git a/kontor-api/src/apis/version1/mediafile.py b/kontor-api/src/apis/version1/mediafile.py index 6f90b57..9823fbf 100644 --- a/kontor-api/src/apis/version1/mediafile.py +++ b/kontor-api/src/apis/version1/mediafile.py @@ -11,7 +11,7 @@ from src.db.models.media import MediaFile router = APIRouter() @router.get("/update-titles") -def update_titles(db: SessionDep) -> list[MediaFileResponse]: +def update_titles(db: SessionDep) -> list[MediaFileResponse]: # type: ignore results: list[MediaFileResponse] = [] files = db.query(MediaFile).filter(MediaFile.review == True).all() for mediafile in files: @@ -25,7 +25,7 @@ def update_titles(db: SessionDep) -> list[MediaFileResponse]: @router.get("/files", response_model=list[MediaFileResponse]) # def get_all_files(db: SessionDep, review: bool = False, download: bool = False, current_user: Profile = Depends(get_current_user_from_token)) -> List[MediaFileResponse]: -def get_all_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]: # type: ignore results: list[MediaFileResponse] = [] files: Sequence[MediaFile] if review: @@ -40,7 +40,7 @@ def get_all_files(db: SessionDep, review: bool = False, download: bool = False) return results @router.get("/files/{file_id}", response_model=MediaFileResponse) -def get_file(file_id: str, db: SessionDep) -> MediaFileResponse: +def get_file(file_id: str, db: SessionDep) -> MediaFileResponse: # type: ignore mediafile = db.get(MediaFile, file_id) if not mediafile: raise HTTPException(status_code=404, detail="MediaFile could not be found") @@ -48,7 +48,7 @@ def get_file(file_id: str, db: SessionDep) -> MediaFileResponse: return response @router.delete("/files/{file_id}", status_code=status.HTTP_204_NO_CONTENT) -def delete_file(file_id: str, db: SessionDep): +def delete_file(file_id: str, db: SessionDep): # type: ignore mediafile = db.get(MediaFile, file_id) if not mediafile: raise HTTPException(status_code=404, detail="MediaFile could not be found") @@ -59,7 +59,7 @@ def delete_file(file_id: str, db: SessionDep): 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]: +def get_file_actors(file_id: str, db: SessionDep) -> list[MediaActorResponse]: # type: ignore mediafile = db.get(MediaFile, file_id) if not mediafile: raise HTTPException(status_code=404, detail="MediaFile could not be found") @@ -72,7 +72,7 @@ def get_file_actors(file_id: str, db: SessionDep) -> list[MediaActorResponse]: return results @router.put("/files/{file_id}/actors", response_model=list[MediaActorFileResponse]) -def update_file_actors(file_id: str, db: SessionDep, actors: list[MediaActorResponse]) -> list[MediaActorFileResponse]: +def update_file_actors(file_id: str, db: SessionDep, actors: list[MediaActorResponse]) -> list[MediaActorFileResponse]: # type: ignore mediafile = db.get(MediaFile, file_id) if not mediafile: raise HTTPException(status_code=404, detail="MediaFile could not be found") @@ -96,7 +96,7 @@ def update_file_actors(file_id: str, db: SessionDep, actors: list[MediaActorResp return results @router.put("/files/{file_id}", response_model=MediaFileResponse) -def update_file(file_id: str, db: SessionDep, info: MediaFileResponse) -> MediaFileResponse: +def update_file(file_id: str, db: SessionDep, info: MediaFileResponse) -> MediaFileResponse: # type: ignore mediaFile = db.get(MediaFile, file_id) if not mediaFile: raise HTTPException(status_code=404, detail="MediaFile could not be found") @@ -110,7 +110,7 @@ def update_file(file_id: str, db: SessionDep, info: MediaFileResponse) -> MediaF return response @router.post("/files", status_code=status.HTTP_201_CREATED) -def add_file(new_link: Link, db: SessionDep) -> MediaFileResponse: +def add_file(new_link: Link, db: SessionDep) -> MediaFileResponse: # type: ignore logger.info(f"add url {new_link.url}") try: mediaFile: MediaFile = create_new_mediafile(new_link.url, db) diff --git a/kontor-scripts/config.py b/kontor-scripts/config.py index 830667a..8cc5270 100644 --- a/kontor-scripts/config.py +++ b/kontor-scripts/config.py @@ -47,6 +47,7 @@ def create_tables(sqlite_conn, logger, recreate_db, scripts): def get_logger(level, config: str): dirs = PlatformDirs(config) logging_config = Path(dirs.user_config_dir, "logging-config.yaml") + log_config = None with open(logging_config, "rt") as f: log_config = yaml.safe_load(f.read()) logging.config.dictConfig(log_config) diff --git a/kontor-scripts/import.py b/kontor-scripts/import.py index b6abd73..283d017 100644 --- a/kontor-scripts/import.py +++ b/kontor-scripts/import.py @@ -123,6 +123,8 @@ def item_delete(table_name: str, item_id: str, api_data: Dict[str, Any], log: Lo url = f"http://{host}:{port}/api/media/files/{item_id}" case "media_actor_file": url = f"http://{host}:{port}/api/media/actorfiles/{item_id}" + case "media_actor": + url = f"http://{host}:{port}/api/media/actors/{item_id}" headers: Dict[str, str] = {"Authorization": f"Bearer {token}"} response = requests.delete(url, headers=headers) log.debug(f"Status: {response.status_code}") @@ -167,6 +169,8 @@ if __name__ == '__main__': item_delete(table_name=tablename, item_id=item_id, api_data=api_data, log=logger) case "media_actor_file": item_delete(table_name=tablename, item_id=item_id, api_data=api_data, log=logger) + case "media_actor": + item_delete(table_name=tablename, item_id=item_id, api_data=api_data, log=logger) case _: logger.info("Method to remove remaining item not implemented") logger.info('kontor.import finished')