from datetime import date from fastapi import APIRouter from fastapi.responses import HTMLResponse from ..services.store import counts, get_store, list_events, list_raw_items, sources_today router = APIRouter() @router.get("/health") def health(): return {"ok": True} @router.get("/status") def status(day: str | None = None): st = get_store() conn = st.connect() item_date = day or date.today().isoformat() return { "date": item_date, "counts": counts(conn), "sources": sources_today(conn, item_date), } @router.get("/raw_items") def raw_items(limit: int = 20): st = get_store() conn = st.connect() return {"items": list_raw_items(conn, limit=limit)} @router.get("/events") def events(limit: int = 20): st = get_store() conn = st.connect() return {"items": list_events(conn, limit=limit)} @router.get("/ui", response_class=HTMLResponse) def ui(): # Tiny no-build UI for early validation. html = """