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 sqlalchemy import select, Sequence
from src.core.log_conf import logger
from src.apis.utils import SessionDep
from src.apis.version1.admin import get_current_user_from_token
from src.db.models.admin import Profile
from src.db.repository.media import create_new_mediafile
from src.schema.media.file import MediaFileResponse, Link, get_file_details, set_file
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)
def add_file(new_link: Link, db: SessionDep) -> MediaFileResponse:
print(new_link.url)
logger.info(f"add url {new_link.url}")
try:
mediaFile: MediaFile = MediaFile()
setattr(mediaFile, "url", new_link.url)
setattr(mediaFile, "review", True)
setattr(mediaFile, "should_download", True)
db.add(mediaFile)
db.commit()
mediaFile: MediaFile = create_new_mediafile(new_link.url, db)
except:
raise HTTPException(status_code=409, detail="Link duplicate")
response = get_file_details(mediaFile)
+20 -1
View File
@@ -1,7 +1,9 @@
from sqlalchemy.orm import Session
from typing import AnyStr
import uuid
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
@@ -19,3 +21,20 @@ def create_new_video(video: AddLinkForm, db: Session) -> MediaVideo:
db.refresh(media_video)
print(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