diff --git a/kontor-api/src/apis/version1/media.py b/kontor-api/src/apis/version1/media.py index 3599e5a..1014b1e 100644 --- a/kontor-api/src/apis/version1/media.py +++ b/kontor-api/src/apis/version1/media.py @@ -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) diff --git a/kontor-api/src/db/repository/media.py b/kontor-api/src/db/repository/media.py index 9221c88..ed665ae 100644 --- a/kontor-api/src/db/repository/media.py +++ b/kontor-api/src/db/repository/media.py @@ -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 +