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:
@@ -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)):
|
||||
|
||||
Reference in New Issue
Block a user