add task status endpoint

This commit is contained in:
qananasikq
2026-04-10 15:13:33 +03:00
parent 62aafae793
commit 3870cf4d94
2 changed files with 21 additions and 2 deletions

View File

@@ -7,6 +7,7 @@ from sqlalchemy import select, func
from ..deps import get_persistence
from ...storage.db import PersistenceService
from ...storage.models import SyncRun
from ...worker.celery_app import celery_app
from ...worker.tasks import sync_vehicle_task, sync_listing_task
router = APIRouter()
@@ -64,6 +65,25 @@ def start_sync_listing(
}
@router.get("/tasks/{task_id}")
def get_task_status(task_id: str):
result = celery_app.AsyncResult(task_id)
payload: dict = {
"task_id": task_id,
"state": result.state,
}
if result.successful():
payload["result"] = result.result
elif result.failed():
payload["error"] = str(result.result)
elif result.info is not None:
payload["meta"] = result.info
return payload
@router.get("/sync-runs")
def list_sync_runs(
page: int = Query(1, ge=1),