Files
calminer/routes/reporting.py

27 lines
722 B
Python

from fastapi import APIRouter, HTTPException, Request
from typing import Dict, Any
from services.reporting import generate_report
from sqlalchemy.orm import Session
from config.database import SessionLocal
router = APIRouter(prefix="/api/reporting", tags=["Reporting"])
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@router.post("/summary", response_model=Dict[str, float])
async def summary_report(request: Request):
# Read raw JSON to handle invalid input formats
data = await request.json()
if not isinstance(data, list):
raise HTTPException(status_code=400, detail="Invalid input format")
report = generate_report(data)
return report