| 1234567891011121314151617181920212223242526272829 |
- """Formal payload draft API routes."""
- from __future__ import annotations
- from typing import Any
- from uuid import UUID
- from fastapi import APIRouter, Depends, HTTPException, Query
- from app.dependencies import get_decode_repository
- from app.schemas import PayloadDraftSchema
- router = APIRouter(prefix="/api/payloads", tags=["payloads"])
- @router.get("/drafts")
- def payload_drafts(
- item_id: UUID | None = Query(default=None),
- repo: Any = Depends(get_decode_repository),
- ) -> dict[str, Any]:
- list_drafts = getattr(repo, "list_payload_drafts", None)
- if list_drafts is None:
- raise HTTPException(status_code=501, detail="payload draft reader is not implemented")
- rows = list_drafts(item_id=item_id)
- return {
- "items": [
- PayloadDraftSchema.model_validate(row).model_dump(mode="json")
- for row in rows
- ]
- }
|