Harden RC7 API response contracts
This commit is contained in:
@@ -6,7 +6,7 @@ from fastapi import APIRouter, Depends, HTTPException, Query
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.db.session import get_db
|
||||
from app.schemas import JobCreate, JobList, JobRead, JobStatus
|
||||
from app.schemas import Envelope, JobCreate, JobList, JobRead, JobStatus
|
||||
from app.services.job_service import JobService
|
||||
from app.utils.response import envelope
|
||||
|
||||
@@ -14,7 +14,7 @@ from app.utils.response import envelope
|
||||
router = APIRouter(prefix="/projects/{project_id}", tags=["jobs"])
|
||||
|
||||
|
||||
@router.post("/jobs", status_code=201, response_model=dict)
|
||||
@router.post("/jobs", status_code=201, response_model=Envelope[JobRead])
|
||||
def create_job(
|
||||
project_id: UUID,
|
||||
payload: JobCreate,
|
||||
@@ -25,7 +25,7 @@ def create_job(
|
||||
return envelope(JobService.create_job(db, payload).model_dump())
|
||||
|
||||
|
||||
@router.get("/jobs", response_model=dict)
|
||||
@router.get("/jobs", response_model=Envelope[JobList])
|
||||
def list_jobs(
|
||||
project_id: UUID,
|
||||
dataset_id: UUID | None = Query(default=None),
|
||||
@@ -43,7 +43,7 @@ def list_jobs(
|
||||
return envelope(JobList(items=items, total=total, limit=limit, offset=offset).model_dump())
|
||||
|
||||
|
||||
@router.get("/jobs/{job_id}", response_model=dict)
|
||||
@router.get("/jobs/{job_id}", response_model=Envelope[JobRead])
|
||||
def read_job(
|
||||
project_id: UUID,
|
||||
job_id: UUID,
|
||||
@@ -55,7 +55,7 @@ def read_job(
|
||||
return envelope(job.model_dump())
|
||||
|
||||
|
||||
@router.get("/jobs/{job_id}/status", response_model=dict)
|
||||
@router.get("/jobs/{job_id}/status", response_model=Envelope[JobStatus])
|
||||
def read_job_status(
|
||||
project_id: UUID,
|
||||
job_id: UUID,
|
||||
|
||||
Reference in New Issue
Block a user