Spaces:
Paused
Paused
| from fastapi import APIRouter, Depends | |
| from app.services.report_service import ReportService | |
| from app.models.reports import DailyReport, WeeklyReport | |
| from datetime import date | |
| from fastapi.responses import JSONResponse | |
| from fastapi import HTTPException, status | |
| router = APIRouter() | |
| async def get_daily_report( | |
| date: date, | |
| service: ReportService = Depends(ReportService) | |
| ): | |
| try: | |
| return await service.generate_daily_report(date.isoformat()) | |
| except Exception as e: | |
| raise HTTPException( | |
| status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, | |
| detail=f"Failed to generate daily report: {str(e)}" | |
| ) | |
| async def get_weekly_report( | |
| end_date: date = None, | |
| service: ReportService = Depends(ReportService) | |
| ): | |
| try: | |
| return await service.generate_weekly_report( | |
| end_date.isoformat() if end_date else None | |
| ) | |
| except Exception as e: | |
| raise HTTPException( | |
| status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, | |
| detail=f"Failed to generate weekly report: {str(e)}" | |
| ) | |