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:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user