feat: add remaining 5 endpoints (VWAP, relative rotation, fred-regional, primary dealer)

Complete all 67 planned endpoints:
- VWAP and Relative Rotation technical indicators
- FRED regional data (by state/county/MSA)
- Primary dealer positioning (Fed data)
This commit is contained in:
Yaojia Wang
2026-03-19 17:31:08 +01:00
parent 87260f4b10
commit 615f17a3bb
4 changed files with 111 additions and 0 deletions

View File

@@ -75,6 +75,25 @@ async def macro_hpi(country: str = Query(default="united_states", max_length=50,
# --- Economy data endpoints ---
@router.get("/economy/fred-regional", response_model=ApiResponse)
@safe
async def economy_fred_regional(
series_id: str = Query(..., min_length=1, max_length=30),
region: str = Query(default=None, max_length=20, pattern=r"^[a-z_]+$"),
):
"""Regional FRED data by state, county, or MSA."""
data = await economy_service.get_fred_regional(series_id=series_id, region=region)
return ApiResponse(data=data)
@router.get("/economy/primary-dealer-positioning", response_model=ApiResponse)
@safe
async def economy_primary_dealer():
"""Primary dealer net positions: treasuries, MBS, corporate bonds."""
data = await economy_service.get_primary_dealer_positioning()
return ApiResponse(data=data)
@router.get("/economy/fred-search", response_model=ApiResponse)
@safe
async def economy_fred_search(query: str = Query(..., min_length=1, max_length=100)):