Spaces:
Running
Running
File size: 945 Bytes
144ebc5 | 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 26 27 28 | from fastapi import APIRouter, Query, HTTPException
from .utils import get_user_dashboard, validate_user_and_camera
router = APIRouter()
@router.get("/user_dashboard")
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)}")
|