synchronize data between configured servers
This commit is contained in:
@@ -10,7 +10,12 @@ from src.db.repository.media import (
|
||||
from src.db.session import SessionDep
|
||||
from src.schema.media.actor import MediaActorResponse, actor_to_response
|
||||
from src.schema.media.actorfile import MediaActorFileResponse, actorfile_to_response
|
||||
from src.schema.media.file import MediaFileResponse, Link, file_to_response, set_file
|
||||
from src.schema.media.file import (
|
||||
MediaFileResponse,
|
||||
Link,
|
||||
file_to_response,
|
||||
file_to_model,
|
||||
)
|
||||
from src.db.models.media import MediaFile
|
||||
|
||||
router = APIRouter()
|
||||
@@ -128,11 +133,14 @@ def update_file_actors(
|
||||
def update_file(
|
||||
file_id: str, db: SessionDep, info: MediaFileResponse
|
||||
) -> MediaFileResponse:
|
||||
mediaFile = db.get(MediaFile, file_id)
|
||||
if not mediaFile:
|
||||
"""
|
||||
Update MediaFile with given id and data.
|
||||
"""
|
||||
media_file = db.get(MediaFile, file_id)
|
||||
if not media_file:
|
||||
raise HTTPException(status_code=404, detail="MediaFile could not be found")
|
||||
set_file(info, mediaFile)
|
||||
db.add(mediaFile)
|
||||
file_to_model(info, media_file)
|
||||
db.add(media_file)
|
||||
db.commit()
|
||||
mediafile = db.get(MediaFile, file_id)
|
||||
if not mediafile:
|
||||
@@ -143,7 +151,7 @@ def update_file(
|
||||
|
||||
@router.post("/files", status_code=status.HTTP_201_CREATED)
|
||||
def add_file(new_link: Link, db: SessionDep) -> MediaFileResponse: # type: ignore
|
||||
logger.info(f"add url {new_link.url}")
|
||||
logger.info("add url %s", new_link.url)
|
||||
try:
|
||||
mediaFile: MediaFile = create_new_mediafile(new_link.url, db)
|
||||
except:
|
||||
|
||||
@@ -17,7 +17,11 @@ class MediaFileResponse(BaseModel):
|
||||
review: bool = False
|
||||
should_download: bool = False
|
||||
|
||||
|
||||
def file_to_response(mediafile: MediaFile) -> MediaFileResponse:
|
||||
"""
|
||||
Create MediaFileResponse from model.
|
||||
"""
|
||||
response: MediaFileResponse = MediaFileResponse(
|
||||
id=mediafile.id,
|
||||
created_date=mediafile.created_date,
|
||||
@@ -28,21 +32,34 @@ def file_to_response(mediafile: MediaFile) -> MediaFileResponse:
|
||||
cloud_link=mediafile.cloud_link,
|
||||
url=mediafile.url,
|
||||
review=mediafile.review,
|
||||
should_download=mediafile.should_download
|
||||
should_download=mediafile.should_download,
|
||||
)
|
||||
return response
|
||||
|
||||
|
||||
class Link(BaseModel):
|
||||
url: str
|
||||
|
||||
def set_file(model: MediaFileResponse, mediafile: MediaFile) -> None:
|
||||
def file_to_model(model: MediaFileResponse, mediafile: MediaFile) -> MediaFile:
|
||||
"""
|
||||
Set data of response to model.
|
||||
"""
|
||||
mediafile.file_name = model.file_name
|
||||
mediafile.cloud_link = model.cloud_link
|
||||
if model.url is not None:
|
||||
mediafile.url = model.url
|
||||
else:
|
||||
mediafile.url = ""
|
||||
if model.title is not None:
|
||||
mediafile.title = model.title
|
||||
else:
|
||||
mediafile.title = ""
|
||||
mediafile.last_modified_date = datetime.now()
|
||||
mediafile.review = model.review
|
||||
mediafile.should_download = model.should_download
|
||||
return mediafile
|
||||
|
||||
|
||||
class Link(BaseModel):
|
||||
"""
|
||||
PYdantic model for uploading url.
|
||||
"""
|
||||
|
||||
url: str
|
||||
|
||||
Reference in New Issue
Block a user