add add_link.py and improve hamndling of MediaFile

This commit is contained in:
Thomas Peetz
2025-06-14 18:53:15 +02:00
committed by Thomas Peetz
parent 56de399c07
commit 23a48d2472
2 changed files with 24 additions and 11 deletions
+4 -10
View File
@@ -2,10 +2,9 @@ from typing import List, AnyStr
from fastapi import APIRouter, status, HTTPException, Depends from fastapi import APIRouter, status, HTTPException, Depends
from sqlalchemy import select, Sequence from sqlalchemy import select, Sequence
from src.core.log_conf import logger
from src.apis.utils import SessionDep from src.apis.utils import SessionDep
from src.apis.version1.admin import get_current_user_from_token from src.db.repository.media import create_new_mediafile
from src.db.models.admin import Profile
from src.schema.media.file import MediaFileResponse, Link, get_file_details, set_file from src.schema.media.file import MediaFileResponse, Link, get_file_details, set_file
from src.db.models.media import MediaFile from src.db.models.media import MediaFile
@@ -61,14 +60,9 @@ def update_file(file_id: AnyStr, db: SessionDep, info: MediaFileResponse) -> Med
@router.post("/files", status_code=status.HTTP_201_CREATED) @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:
print(new_link.url) logger.info(f"add url {new_link.url}")
try: try:
mediaFile: MediaFile = MediaFile() mediaFile: MediaFile = create_new_mediafile(new_link.url, db)
setattr(mediaFile, "url", new_link.url)
setattr(mediaFile, "review", True)
setattr(mediaFile, "should_download", True)
db.add(mediaFile)
db.commit()
except: except:
raise HTTPException(status_code=409, detail="Link duplicate") raise HTTPException(status_code=409, detail="Link duplicate")
response = get_file_details(mediaFile) response = get_file_details(mediaFile)
+20 -1
View File
@@ -1,7 +1,9 @@
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from typing import AnyStr
import uuid import uuid
from datetime import datetime from datetime import datetime
from src.db.models.media import MediaVideo from src.core.log_conf import logger
from src.db.models.media import MediaFile, MediaVideo
from src.webapps.media.forms import AddLinkForm from src.webapps.media.forms import AddLinkForm
@@ -19,3 +21,20 @@ def create_new_video(video: AddLinkForm, db: Session) -> MediaVideo:
db.refresh(media_video) db.refresh(media_video)
print(media_video) print(media_video)
return media_video return media_video
def create_new_mediafile(link: AnyStr, db: Session) -> MediaFile:
logger.info("create MediaFile with url {link}")
media_file: MediaFile = MediaFile()
media_file.id = str(uuid.uuid4())
media_file.url = link
media_file.created_date = datetime.now()
media_file.last_modified_date = datetime.now()
media_file.version = 0
media_file.review = True
media_file.should_download = True
db.add(media_file)
db.commit()
db.refresh(media_file)
logger.info(f"created {media_file}")
return media_file