add put method to kontor-api
This commit is contained in:
@@ -4,7 +4,12 @@ from fastapi import APIRouter, status, HTTPException
|
||||
from src.core.log_conf import logger
|
||||
from src.db.repository.media.actor import delete_mediaactor, import_mediaactor
|
||||
from src.db.session import SessionDep
|
||||
from src.schema.media.actor import MediaActorModel, MediaActorResponse, actor_to_response
|
||||
from src.schema.media.actor import (
|
||||
MediaActorModel,
|
||||
MediaActorResponse,
|
||||
actor_to_response,
|
||||
actor_to_model
|
||||
)
|
||||
from src.db.models.media import MediaActor
|
||||
|
||||
router = APIRouter()
|
||||
@@ -26,6 +31,23 @@ def get_actor(actor_id: str, db: SessionDep) -> MediaActorResponse:
|
||||
response = actor_to_response(media_actor)
|
||||
return response
|
||||
|
||||
@router.put("/actors/{actor_id}", response_model=MediaActorResponse)
|
||||
def update_actor(actor_id: str, db:SessionDep, info: MediaActorResponse) -> MediaActorResponse:
|
||||
"""
|
||||
Update MediaActor with given id and data.
|
||||
"""
|
||||
media_actor = db.get(MediaActor, actor_id)
|
||||
if not media_actor:
|
||||
raise HTTPException(status_code=404, detail="MediaActor could not be found")
|
||||
actor_to_model(info, media_actor)
|
||||
db.add(media_actor)
|
||||
db.commit()
|
||||
mediaactor = db.get(MediaActor, actor_id)
|
||||
if not mediaactor:
|
||||
raise HTTPException(status_code=404, detail="MediaActor could not be found")
|
||||
response = actor_to_response(mediaactor)
|
||||
return response
|
||||
|
||||
@router.delete("/actors/{actor_id}", status_code=status.HTTP_204_NO_CONTENT)
|
||||
def delete_actor(actor_id: str, db: SessionDep):
|
||||
media_actor = db.get(MediaActor, actor_id)
|
||||
|
||||
@@ -6,7 +6,7 @@ import json
|
||||
from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
|
||||
from logging import Logger
|
||||
from typing import Dict, List
|
||||
|
||||
from diskcache import Index
|
||||
from api import (
|
||||
MAPPING,
|
||||
EndPointNotAvailableException,
|
||||
@@ -66,9 +66,10 @@ if __name__ == "__main__":
|
||||
export_data = {}
|
||||
for server in server_list:
|
||||
export_data[server.name] = {}
|
||||
index = Index(f"/tmp/sync-{server.name}")
|
||||
for table, path in MAPPING.items():
|
||||
try:
|
||||
data = server.request(logger, table=table)
|
||||
data = server.request(logger, table=table, index=index)
|
||||
logger.info("%s: %s", table, len(data))
|
||||
export_data[server.name][table] = data
|
||||
logger.info("%s: %s exported", table, len(data))
|
||||
|
||||
Reference in New Issue
Block a user