refactor(api): unify typed error contract across draft pricing and publish flows

standardize typed error responses across draft, pricing and publish endpoints

reduce contract drift between related flows
keep client-side handling more predictable and consistent
This commit is contained in:
greebo
2026-03-19 19:54:42 +03:00
parent 64ec1c5180
commit af175d88dd
7 changed files with 89 additions and 38 deletions

View File

@@ -1,24 +1,19 @@
from __future__ import annotations
from fastapi import HTTPException, status
from app.repositories.scheme_groups import list_scheme_version_groups
from app.repositories.scheme_seats import list_scheme_version_seats
from app.repositories.scheme_sectors import list_scheme_version_sectors
from app.services.api_errors import raise_unprocessable
def _raise_uniqueness_error(message: str, detail: dict | None = None) -> None:
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=detail or {"code": "editor_uniqueness_error", "message": message},
)
payload = detail or {"code": "editor_uniqueness_error", "message": message}
raise_unprocessable(**payload)
def _raise_reference_error(message: str, detail: dict | None = None) -> None:
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=detail or {"code": "editor_reference_error", "message": message},
)
payload = detail or {"code": "editor_reference_error", "message": message}
raise_unprocessable(**payload)
async def validate_single_seat_patch_uniqueness(