refactor: split backend route domains
This commit is contained in:
50
backend/app/integration_routes.py
Normal file
50
backend/app/integration_routes.py
Normal file
@@ -0,0 +1,50 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from fastapi import FastAPI
|
||||
|
||||
|
||||
def register_integration_routes(
|
||||
app: FastAPI,
|
||||
*,
|
||||
import_integration_sources,
|
||||
fetch_integration_summary,
|
||||
fetch_project_metrics,
|
||||
fetch_member_metrics,
|
||||
fetch_team_metrics,
|
||||
fetch_project_breakdowns,
|
||||
fetch_payment_source_rows,
|
||||
fetch_mh_source_rows,
|
||||
) -> None:
|
||||
@app.post("/api/integration/import")
|
||||
def import_integration_data() -> dict[str, object]:
|
||||
return import_integration_sources()
|
||||
|
||||
@app.get("/api/integration/summary")
|
||||
def integration_summary() -> dict[str, object]:
|
||||
return fetch_integration_summary()
|
||||
|
||||
@app.get("/api/integration/projects")
|
||||
def integration_projects(limit: int = 500, start_date: str | None = None, end_date: str | None = None) -> dict[str, list[dict[str, object]]]:
|
||||
safe_limit = max(1, min(limit, 5000))
|
||||
return {"items": fetch_project_metrics(safe_limit, start_date=start_date, end_date=end_date)}
|
||||
|
||||
@app.get("/api/integration/members")
|
||||
def integration_members(limit: int = 500, start_date: str | None = None, end_date: str | None = None) -> dict[str, list[dict[str, object]]]:
|
||||
safe_limit = max(1, min(limit, 5000))
|
||||
return {"items": fetch_member_metrics(safe_limit, start_date=start_date, end_date=end_date)}
|
||||
|
||||
@app.get("/api/integration/teams")
|
||||
def integration_teams(start_date: str | None = None, end_date: str | None = None) -> dict[str, list[dict[str, object]]]:
|
||||
return {"items": fetch_team_metrics(start_date=start_date, end_date=end_date)}
|
||||
|
||||
@app.get("/api/integration/project-breakdowns")
|
||||
def integration_project_breakdowns(start_date: str | None = None, end_date: str | None = None) -> dict[str, list[dict[str, object]]]:
|
||||
return fetch_project_breakdowns(start_date=start_date, end_date=end_date)
|
||||
|
||||
@app.get("/api/integration/payment-source")
|
||||
def integration_payment_source() -> dict[str, object]:
|
||||
return fetch_payment_source_rows()
|
||||
|
||||
@app.get("/api/integration/mh-source")
|
||||
def integration_mh_source() -> dict[str, object]:
|
||||
return fetch_mh_source_rows()
|
||||
Reference in New Issue
Block a user