add put method to kontor-api
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 4s
Gitea Actions Demo / build-and-test (push) Failing after 14m45s

This commit is contained in:
Thomas Peetz
2026-10-26 12:31:30 +01:00
parent 2889927416
commit 9ab4f2103f
2 changed files with 26 additions and 3 deletions
+23 -1
View File
@@ -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)
+3 -2
View File
@@ -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))