25 lines
745 B
Python
25 lines
745 B
Python
"""Status query endpoint."""
|
|
|
|
from fastapi import APIRouter, HTTPException
|
|
|
|
from backend.models.response import StatusResponse
|
|
from backend.services.task_manager import task_manager
|
|
|
|
router = APIRouter(prefix="/api", tags=["status"])
|
|
|
|
|
|
@router.get("/status/{task_id}", response_model=StatusResponse)
|
|
async def get_status(task_id: str):
|
|
if not task_manager.has_task(task_id):
|
|
raise HTTPException(status_code=404, detail=f"Task {task_id} not found")
|
|
|
|
status = task_manager.get_status(task_id)
|
|
|
|
return StatusResponse(
|
|
task_id=task_id,
|
|
status=status["status"],
|
|
progress=status["progress"],
|
|
message=status["message"],
|
|
error=status.get("error"),
|
|
tracks=status.get("tracks", [])
|
|
) |