29 lines
863 B
Python
29 lines
863 B
Python
"""任务状态查询(前端轮询)。"""
|
|
from fastapi import APIRouter, Depends, HTTPException, status
|
|
from sqlalchemy import select
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from app.db import get_db
|
|
from app.deps import get_current_user
|
|
from app.models.job import ProcessingJob
|
|
from app.models.user import User
|
|
from app.schemas.job import JobOut
|
|
|
|
router = APIRouter(prefix="/api/jobs", tags=["jobs"])
|
|
|
|
|
|
@router.get("/{job_id}", response_model=JobOut)
|
|
async def get_job(
|
|
job_id: str,
|
|
db: AsyncSession = Depends(get_db),
|
|
current: User = Depends(get_current_user),
|
|
):
|
|
job = await db.scalar(
|
|
select(ProcessingJob).where(
|
|
ProcessingJob.id == job_id, ProcessingJob.user_id == current.id
|
|
)
|
|
)
|
|
if job is None:
|
|
raise HTTPException(status.HTTP_404_NOT_FOUND, detail="任务不存在")
|
|
return job
|