kontor-api: Add details pages for Comics, Artists and MediaFiles

This commit is contained in:
Thomas Peetz
2025-04-28 15:47:07 +02:00
parent 3afbbf900d
commit 1290a45fb5
20 changed files with 331 additions and 22 deletions
+13 -2
View File
@@ -4,8 +4,7 @@ from fastapi import APIRouter, Request
from fastapi.templating import Jinja2Templates
from src.apis.utils import SessionDep
from src.db.models.comic import Comic, Artist
from src.schema.comics.comic import get_comic_details
from src.db.models.comic import Comic, Artist, Publisher
templates = Jinja2Templates(directory="src/templates")
router = APIRouter(include_in_schema=False, prefix="/comic")
@@ -29,3 +28,15 @@ def get_artists(db: SessionDep, request: Request, msg: str = None):
def artist_detail(artist_id: UUID, request: Request, db: SessionDep):
artist = db.get(Artist, artist_id)
return templates.TemplateResponse("comic/artist_detail.html", {"request": request, "artist": artist})
@router.get("/publishers")
def get_publishers(db: SessionDep, request: Request, msg: str = None):
publishers = db.query(Publisher).all()
return templates.TemplateResponse("comic/publishers.html", {"request": request, "publishers": publishers})
@router.get("/publishers/{publisher_id}")
def publisher_details(publisher_id: UUID, request: Request, db: SessionDep, msg: str = None):
publisher = db.get(Publisher, publisher_id)
if publisher is None:
msg = "Could not find Publisher"
return templates.TemplateResponse("comic/publisher_detail.html", {"request": request, "msg": msg, "publisher": publisher})