Files
svg-backend/backend/app/services/api_errors.py
greebo ac3a62f108 feat(backend): add publish readiness contract and guarded publish flow
add backend readiness contract for publish prechecks

guard publish flow with explicit validation and version-aware checks
make publish behavior more predictable for clients and safer against stale state
2026-03-19 20:41:08 +03:00

32 lines
735 B
Python

from __future__ import annotations
from fastapi import HTTPException, status
def raise_conflict(*, code: str, message: str, details: dict | None = None) -> None:
payload: dict = {
"code": code,
"message": message,
}
if details:
payload["details"] = details
raise HTTPException(
status_code=status.HTTP_409_CONFLICT,
detail=payload,
)
def raise_unprocessable(*, code: str, message: str, details: dict | None = None) -> None:
payload: dict = {
"code": code,
"message": message,
}
if details:
payload["details"] = details
raise HTTPException(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
detail=payload,
)