Files
group_fqcd_jr/app/api/controllers/market_data.py
T

34 lines
1.1 KiB
Python

"""Administrative visibility into public market-data source health."""
from typing import Any
from fastapi import APIRouter, Depends, Query
from app.api.dependencies.auth import build_request_context
from app.core.contracts import RequestContext
from app.service.market_data_health_service import MarketDataHealthService
router = APIRouter(prefix="/api/v1/admin/market-data", tags=["market-data"])
@router.get("/health")
async def source_health(
limit: int = Query(default=20, ge=1, le=100),
context: RequestContext = Depends(build_request_context), # noqa: B008
) -> dict[str, Any]:
return {
"data": await MarketDataHealthService().health(context, limit=limit),
"meta": {"trace_id": context.trace_id},
}
@router.get("/alerts")
async def source_alerts(
limit: int = Query(default=50, ge=1, le=100),
context: RequestContext = Depends(build_request_context), # noqa: B008
) -> dict[str, Any]:
return {
"data": await MarketDataHealthService().alerts(context, limit=limit),
"meta": {"trace_id": context.trace_id},
}