refactor scripts to work wit api

This commit is contained in:
Thomas Peetz
2025-04-16 05:08:59 +02:00
parent 98e3d91edd
commit 4a61d6a727
8 changed files with 262 additions and 191 deletions
+13 -9
View File
@@ -1,10 +1,11 @@
from uuid import UUID
from fastapi import APIRouter
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy import select
from sqlalchemy.orm import Session
from app.models.comic import ComicResponse
from app.schema import Comic, __session__
from app.schema import Comic, get_db, SessionDep
router = APIRouter(
prefix="/comic",
@@ -14,15 +15,18 @@ router = APIRouter(
@router.get("/comics")
def get_all_comics() -> list[ComicResponse]:
def get_all_comics(db: SessionDep) -> list[ComicResponse]:
results: list[ComicResponse] = []
with __session__() as session:
comics = session.scalars(select(Comic)).all()
for comic in comics:
results.append(ComicResponse(id=comic.id, title=comic.title, completed=(comic.completed == 1)))
comics = db.scalars(select(Comic)).all()
for comic in comics:
results.append(ComicResponse(id=comic.id, title=comic.title, completed=(comic.completed == 1)))
return results
@router.get("/comics/{comic_id}")
def get_comic(comic_id: UUID) -> ComicResponse:
return ComicResponse(id=comic_id, title="Comic2", completed=False)
def get_comic(comic_id: UUID, db: SessionDep) -> ComicResponse:
comic = db.get(Comic, comic_id)
if comic is None:
raise HTTPException(status_code=404, detail="Comic could not be found")
response: ComicResponse = ComicResponse(id=comic_id, title=comic.title, completed=comic.completed)
return response