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

@@ -0,0 +1,39 @@
from __future__ import annotations
from fastapi import HTTPException, status
def raise_conflict(*, code: str, message: str, **extra) -> None:
detail = {
"code": code,
"message": message,
**extra,
}
raise HTTPException(
status_code=status.HTTP_409_CONFLICT,
detail=detail,
)
def raise_unprocessable(*, code: str, message: str, **extra) -> None:
detail = {
"code": code,
"message": message,
**extra,
}
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=detail,
)
def raise_not_found(*, code: str, message: str, **extra) -> None:
detail = {
"code": code,
"message": message,
**extra,
}
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail=detail,
)