Spaces:
Running
Running
| from fastapi import APIRouter, Query, HTTPException | |
| from .utils import get_user_dashboard, validate_user_and_camera | |
| router = APIRouter() | |
| def user_dashboard( | |
| user_id: str = Query(..., description="User ID for analytics"), | |
| camera_name: str = Query(None, description="Optional camera name to filter") | |
| ): | |
| """ | |
| Return analytics for a user. | |
| If camera_name is provided, validate camera and show stats for that camera only. | |
| """ | |
| try: | |
| # Validate camera if specified | |
| if camera_name: | |
| validate_user_and_camera(user_id, camera_name) | |
| # Get dashboard (all cameras or specific) | |
| dashboard = get_user_dashboard(user_id, camera_name=camera_name) | |
| return {"success": True, "dashboard": dashboard} | |
| except HTTPException as e: | |
| raise e | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=f"Internal error: {str(e)}") | |