admin / Synapse-Cortex
publicSelf Hosted ITSM Tool with RBAC/Tenanting and MFA
Synapse-Cortex / Synapse-Cortexv2 / app / routers / dashboard.py
845 B · main
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | from typing import Optional from fastapi import APIRouter, Depends, HTTPException, status from sqlalchemy.orm import Session from .. import models, schemas from ..database import get_db from ..deps import get_session_user from ..queries import queue_counts, tenant_tickets router = APIRouter(prefix="/api/v1/dashboard", tags=["dashboard"]) @router.get("", response_model=schemas.DashboardOut) def get_dashboard(db: Session = Depends(get_db), user: Optional[models.User] = Depends(get_session_user)): if not user: raise HTTPException(status.HTTP_401_UNAUTHORIZED) tenant_id = user.tenant_id tickets = tenant_tickets(db, tenant_id).order_by(models.Ticket.created_at.desc()).limit(25).all() return schemas.DashboardOut( queue=schemas.QueueCounts(**queue_counts(db, tenant_id)), tickets=tickets, ) |