Spaces:
Configuration error
Configuration error
| """Analytics dashboard/metrics API router.""" | |
| from fastapi import APIRouter, Depends, status | |
| from app.core.logging import get_logger | |
| from app.dependencies.auth import get_current_user, TokenUser | |
| from app.dashboard.schemas.schema import ( | |
| MetricUpsert, MetricResponse, MetricListRequest, | |
| DashboardSummaryRequest, StatusResponse, | |
| ) | |
| from app.dashboard.services.service import MetricService | |
| logger = get_logger(__name__) | |
| router = APIRouter(prefix="/metrics", tags=["dashboard", "metrics"]) | |
| async def upsert_metric( | |
| payload: MetricUpsert, | |
| current_user: TokenUser = Depends(get_current_user), | |
| ): | |
| metric_id = await MetricService.upsert_metric(payload) | |
| return StatusResponse(success=True, message="Metric upserted", metric_id=metric_id) | |
| async def list_metrics( | |
| payload: MetricListRequest, | |
| current_user: TokenUser = Depends(get_current_user), | |
| ): | |
| results = await MetricService.list_metrics( | |
| filters=payload.filters, | |
| skip=payload.skip, | |
| limit=payload.limit, | |
| projection_list=payload.projection_list, | |
| ) | |
| total = await MetricService.count_metrics(payload.filters) | |
| return {"success": True, "total": total, "skip": payload.skip, "limit": payload.limit, "data": results} | |
| async def dashboard_summary( | |
| payload: DashboardSummaryRequest, | |
| current_user: TokenUser = Depends(get_current_user), | |
| ): | |
| summary = await MetricService.get_dashboard_summary(payload) | |
| return {"success": True, **summary} | |