Skip to content

Commit 05d5b9a

Browse files
Merge pull request #891 from NHSDigital/feature/axkr1-NRL-505-422-errors
NRL-505 All business validation errors are now 422 Unprocessable Entity
2 parents 75f832c + 05b54c3 commit 05d5b9a

15 files changed

+485
-463
lines changed

api/producer/createDocumentReference/create_document_reference.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def _check_permissions(
7373
ods_code_parts=metadata.ods_code_parts,
7474
custodian_parts=custodian_parts,
7575
)
76-
return SpineErrorResponse.BAD_REQUEST(
76+
return SpineErrorResponse.UNPROCESSABLE_ENTITY(
7777
diagnostics="The custodian of the provided DocumentReference does not match the expected ODS code for this organisation",
7878
expression="custodian.identifier.value",
7979
)
@@ -201,10 +201,11 @@ def _raise_operation_outcome_error(diagnostics, idx):
201201
"""
202202
raise OperationOutcomeError(
203203
severity="error",
204-
code="invalid",
205-
details=SpineErrorConcept.from_code("BAD_REQUEST"),
204+
code="business-rule",
205+
details=SpineErrorConcept.from_code("UNPROCESSABLE_ENTITY"),
206206
diagnostics=diagnostics,
207207
expression=[f"relatesTo[{idx}].target.identifier.value"],
208+
status_code="422",
208209
)
209210

210211

@@ -236,7 +237,7 @@ def handler(
236237

237238
if not result.is_valid:
238239
logger.log(LogReference.PROCREATE002)
239-
return Response.from_issues(issues=result.issues, statusCode="400")
240+
return Response.from_issues(issues=result.issues, statusCode="422")
240241

241242
core_model = _create_core_model(result.resource, metadata)
242243
if error_response := _check_permissions(core_model, metadata):

0 commit comments

Comments
 (0)