from fastapi import APIRouter router = APIRouter() @router.post("/trigger-poll") async def trigger_poll(): """Manually trigger a Congress.gov poll without waiting for the Beat schedule.""" from app.workers.congress_poller import poll_congress_bills task = poll_congress_bills.delay() return {"task_id": task.id, "status": "queued"} @router.post("/trigger-member-sync") async def trigger_member_sync(): """Manually trigger a member sync.""" from app.workers.congress_poller import sync_members task = sync_members.delay() return {"task_id": task.id, "status": "queued"} @router.post("/trigger-trend-scores") async def trigger_trend_scores(): """Manually trigger trend score calculation.""" from app.workers.trend_scorer import calculate_all_trend_scores task = calculate_all_trend_scores.delay() return {"task_id": task.id, "status": "queued"} @router.get("/task-status/{task_id}") async def get_task_status(task_id: str): """Check the status of an async task.""" from app.workers.celery_app import celery_app result = celery_app.AsyncResult(task_id) return { "task_id": task_id, "status": result.status, "result": result.result if result.ready() else None, }