This commit is contained in:
team3
2026-09-29 13:47:21 +02:00
parent aa80a5f17c
commit 828e3978e9
6 changed files with 52 additions and 8 deletions

View File

@@ -1,3 +1,4 @@
import json
import logging
from contextlib import asynccontextmanager
@@ -27,6 +28,11 @@ class ThemaNeu(BaseModel):
hinweise: str = ""
class Position(BaseModel):
abschnitt: str | None = None
lesemodus: int | None = None
def _pruefen(name: str) -> dict:
if not state.name_ok(name) or not (t := state.thema(name)):
raise HTTPException(404, "Thema unbekannt")
@@ -94,6 +100,18 @@ async def zustand(name: str):
"deutung": st.get("deutung") or state.deutung(name), "ereignisse": st["ereignisse"][-100:]}
@app.get("/api/topics/{name}/position")
async def position_lesen(name: str):
_pruefen(name)
return state.position(name)
@app.put("/api/topics/{name}/position")
async def position_schreiben(name: str, body: Position):
_pruefen(name)
return state.position_setzen(name, {k: v for k, v in body.model_dump().items() if v is not None})
@app.get("/api/topics/{name}/guide")
async def guide(name: str):
_pruefen(name)