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,9 +1,8 @@
from fastapi import HTTPException, status
from app.repositories.audit import create_audit_event
from app.repositories.scheme_version_pricing import replace_scheme_version_pricing_snapshot
from app.services.draft_guard import get_current_draft_context
from app.repositories.schemes import publish_scheme
from app.services.api_errors import raise_conflict
from app.services.scheme_validation import build_scheme_validation_report
@@ -23,9 +22,11 @@ async def publish_current_draft_scheme(
)
if not validation["summary"]["is_publishable"]:
raise HTTPException(
status_code=status.HTTP_409_CONFLICT,
detail="Scheme is not publishable in current state",
raise_conflict(
code="publish_validation_failed",
message="Scheme is not publishable in current state",
scheme_version_id=version.scheme_version_id,
validation_summary=validation["summary"],
)
snapshot = await replace_scheme_version_pricing_snapshot(