Analysis/backend/app/api/v1/reports.py
2026-01-11 22:56:02 +01:00

33 lines
970 B
Python

from fastapi import APIRouter, HTTPException, Response
from pydantic import BaseModel
from typing import Dict, Any, List
from app.core.engine.reports import create_pdf_report
router = APIRouter(prefix="/reports", tags=["reporting"])
class ExportRequest(BaseModel):
project_name: str
results: Dict[str, Any]
audit_trail: Dict[str, Any]
@router.post("/export")
async def export_report(request: ExportRequest):
"""
Generates and returns a PDF report.
"""
try:
pdf_bytes = create_pdf_report(
request.project_name,
request.results,
request.audit_trail
)
return Response(
content=pdf_bytes,
media_type="application/pdf",
headers={
"Content-Disposition": f"attachment; filename=Report_{request.project_name}.pdf"
}
)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))