neurodraw-backend / api /cases.py
ak332's picture
Upload 25 files
ab454db verified
Raw
History Blame Contribute Delete
1.09 kB
"""
api/cases.py — Session history endpoints.
GET/DELETE operations on the in-memory case store.
"""
from fastapi import APIRouter, HTTPException, Request
router = APIRouter()
@router.get("/cases")
async def list_cases(request: Request):
"""Return all cases, sorted newest first."""
cases = list(request.app.state.cases.values())
cases.sort(key=lambda c: c.get("timestamp", ""), reverse=True)
return {"cases": cases, "count": len(cases)}
@router.get("/cases/{case_id}")
async def get_case(case_id: str, request: Request):
"""Return a single case by ID."""
case = request.app.state.cases.get(case_id)
if not case:
raise HTTPException(status_code=404, detail=f"Case '{case_id}' not found")
return case
@router.delete("/cases/{case_id}")
async def delete_case(case_id: str, request: Request):
"""Delete a case from session history."""
if case_id not in request.app.state.cases:
raise HTTPException(status_code=404, detail=f"Case '{case_id}' not found")
del request.app.state.cases[case_id]
return {"deleted": case_id}