MukeshKapoor25's picture
Add initial project structure with FastAPI, Docker, and SQL Server integration
5fa5dc7
from fastapi import APIRouter, Depends, Response
from sqlalchemy.orm import Session
from app.db.session import get_db
from app.services.report_service import ReportService
from app.schemas.report import ReportOut
from typing import List
import csv
import io
router = APIRouter(prefix="/api/v1/reports", tags=["reports"])
@router.get("/projects", response_model=List[ReportOut])
def get_reports(from_: str, to: str, type: str = "json", db: Session = Depends(get_db)):
# For demo, just return all reports
service = ReportService(db)
reports = db.query(ReportService.db.query(ReportService.db)).all()
if type == "csv":
output = io.StringIO()
writer = csv.writer(output)
writer.writerow(["id", "project_id", "type", "status", "created_at", "completed"])
for r in reports:
writer.writerow([r.id, r.project_id, r.type, r.status, r.created_at, r.completed])
response = Response(content=output.getvalue(), media_type="text/csv")
response.headers["Content-Disposition"] = "attachment; filename=reports.csv"
return response
return reports