"""Proxy recommendations to Tools API.""" from __future__ import annotations import os import httpx from fastapi import APIRouter admin_router = None # patched into admin_api TOOLS = os.getenv("TOOLS_API_URL", "http://tools-api:8700").rstrip("/") async def _proxy(method: str, path: str): async with httpx.AsyncClient(timeout=60) as client: r = await getattr(client, method.lower())(f"{TOOLS}{path}") return r.json() def register_recommendation_routes(router: APIRouter) -> None: @router.get("/recommendations/pending") async def reco_pending(): return await _proxy("GET", "/recommendations/pending") @router.post("/recommendations/generate") async def reco_generate(): return await _proxy("POST", "/recommendations/generate") @router.post("/recommendations/{rec_id}/approve") async def reco_approve(rec_id: int): return await _proxy("POST", f"/recommendations/{rec_id}/approve") @router.post("/recommendations/{rec_id}/dismiss") async def reco_dismiss(rec_id: int): return await _proxy("POST", f"/recommendations/{rec_id}/dismiss") @router.post("/research/run") async def research_run(): return await _proxy("POST", "/research/run")