Buck_Tracker / api /analytics.py
codewithRiz's picture
init
144ebc5
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)}")