from fastapi import APIRouter, Depends, Request from fastapi.responses import HTMLResponse from sqlmodel import Session, select, desc from app.auth import require_user from app.database import get_session from app.models import ActivityLog from app.templates import templates router = APIRouter() @router.get("/", response_class=HTMLResponse) async def dashboard(request: Request, session: Session = Depends(get_session), user=Depends(require_user)): from app.main import get_eventsub_task task = get_eventsub_task() eventsub_connected = task is not None and not task.done() logs = session.exec( select(ActivityLog).order_by(desc(ActivityLog.triggered_at)).limit(50) ).all() return templates.TemplateResponse("dashboard.html", { "request": request, "user": user, "eventsub_connected": eventsub_connected, "logs": logs, })