Skip to content

Commit 89f96aa

Browse files
fixes error handling
1 parent a74743a commit 89f96aa

8 files changed

+60
-11
lines changed

proxies/live/apiproxy/policies/AssignMessage.AppMisconfiguredErrorResponse.xml renamed to proxies/live/apiproxy/policies/AssignMessage.InternalServerError.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
<AssignMessage continueOnError="false" enabled="true" name="AssignMessage.AppMisconfiguredErrorResponse">
2-
<DisplayName>AssignMessage.AppMisconfiguredErrorResponse</DisplayName>
1+
<AssignMessage continueOnError="false" enabled="true" name="AssignMessage.InternalServerError">
2+
<DisplayName>AssignMessage.InternalServerError</DisplayName>
33
<Remove>
4-
<Payload>true</Payload>
4+
<Payload>Internal Server Error</Payload>
55
</Remove>
66
<AssignTo createNew="false" type="response"/>
77
</AssignMessage>

proxies/live/apiproxy/policies/AssignMessage.SetOperationOutcomeODSHeaderMissingPreR4.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@
55
</AssignVariable>
66
<AssignVariable>
77
<Name>op_outcome_issue_code</Name>
8-
<Value>BAD_REQUEST</Value>
8+
<Value>invalid</Value>
99
</AssignVariable>
1010
<AssignVariable>
1111
<Name>faultstring</Name>
1212
<Value>Missing or Empty NHSD-End-User-Organisation-ODS header.</Value>
1313
</AssignVariable>
14+
<AssignVariable>
15+
<Name>op_outcome_issue_details_coding_code</Name>
16+
<Value>MISSING_HEADER</Value>
17+
</AssignVariable>
1418
</AssignMessage>

proxies/live/apiproxy/policies/AssignMessage.SetOperationOutcomeODSHeaderMissingR4.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
</AssignVariable>
66
<AssignVariable>
77
<Name>op_outcome_issue_code</Name>
8-
<Value>REC_BAD_REQUEST</Value>
8+
<Value>invalid</Value>
99
</AssignVariable>
10+
<!-- Overrides OutcomeVariablesR4-->
1011
<AssignVariable>
1112
<Name>op_outcome_issue_details_coding_code</Name>
1213
<Value>MISSING_HEADER</Value>

proxies/live/apiproxy/policies/AssignMessage.SetOperationOutcomeODSHeaderValueNotInPartnerListPreR4.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,8 @@
1111
<Name>faultstring</Name>
1212
<Value>Unauthorised ODS code provided in NHSD-End-User-Organisation-ODS header</Value>
1313
</AssignVariable>
14+
<AssignVariable>
15+
<Name>op_outcome_issue_details_coding_code</Name>
16+
<Value>ACCESS_DENIED</Value>
17+
</AssignVariable>
1418
</AssignMessage>

proxies/live/apiproxy/policies/AssignMessage.SetOperationOutcomeODSHeaderValueNotInPartnerListR4.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@
55
</AssignVariable>
66
<AssignVariable>
77
<Name>op_outcome_issue_code</Name>
8-
<Value>ACCESS_DENIED</Value>
8+
<Value>security</Value>
99
</AssignVariable>
1010
<AssignVariable>
1111
<Name>faultstring</Name>
1212
<Value>Unauthorised ODS code provided in NHSD-End-User-Organisation-ODS header</Value>
1313
</AssignVariable>
14+
<AssignVariable>
15+
<Name>op_outcome_issue_details_coding_code</Name>
16+
<Value>ACCESS_DENIED</Value>
17+
</AssignVariable>
1418
</AssignMessage>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<AssignMessage enabled="true" name="AssignMessage.SetOperationOutcomeODSHeaderMissingR4">
2+
<AssignVariable>
3+
<Name>status_code</Name>
4+
<Value>500</Value>
5+
</AssignVariable>
6+
<AssignVariable>
7+
<Name>op_outcome_issue_code</Name>
8+
<Value>exception</Value>
9+
</AssignVariable>
10+
<!-- Overrides OutcomeVariablesR4-->
11+
<AssignVariable>
12+
<Name>op_outcome_issue_details_coding_code</Name>
13+
<Value>SERVICE_ERROR</Value>
14+
</AssignVariable>
15+
<AssignVariable>
16+
<Name>faultstring</Name>
17+
<Value>Internal Server Error</Value>
18+
</AssignVariable>
19+
</AssignMessage>

proxies/live/apiproxy/policies/AssignMessage.SetOperationOutcomeVariablesR4.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,8 @@
77
<Name>op_outcome_issue_details_coding_system</Name>
88
<Value>https://fhir.nhs.uk/CodeSystem/NHSD-API-ErrorOrWarningCode</Value>
99
</AssignVariable>
10+
<AssignVariable>
11+
<Name>op_outcome_issue_details_coding_code</Name>
12+
<Value>ACCESS_DENIED</Value>
13+
</AssignVariable>
1014
</AssignMessage>

proxies/live/apiproxy/targets/ers-target.xml

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
<Step>
127127
<Name>AssignMessage.OperationOutcomeErrorResponse</Name>
128128
</Step>
129-
<Condition>(raisefault.RaiseFault.CheckAllowlistFailed.failed = true) and (validation.errorDescription ~~ ".*Invalid ODS code.*")</Condition>
129+
<Condition>(raisefault.RaiseFault.CheckAllowlistFailed.failed = true) and (validation.statusCode = 403)</Condition>
130130
</FaultRule>
131131
<FaultRule name="ods_header_missing_error">
132132
<Step>
@@ -139,7 +139,7 @@
139139
</Step>
140140
<Step>
141141
<Condition>(isFhirR4Path = true)</Condition>
142-
<Name>AssignMessage.SetOperationOutcomeVariablesR4</Name> // TODO: Make change
142+
<Name>AssignMessage.SetOperationOutcomeVariablesR4</Name>
143143
</Step>
144144
<Step>
145145
<Condition>(isFhirR4Path = true)</Condition>
@@ -148,13 +148,26 @@
148148
<Step>
149149
<Name>AssignMessage.OperationOutcomeErrorResponse</Name>
150150
</Step>
151-
<Condition>(raisefault.RaiseFault.CheckAllowlistFailed.failed = true) and (validation.errorDescription ~~ ".*Missing or Empty NHSD-End-User-Organisation-ODS header.*")</Condition>
151+
<Condition>(raisefault.RaiseFault.CheckAllowlistFailed.failed = true) and (validation.statusCode = 400)</Condition>
152152
</FaultRule>
153153
<FaultRule name="single_asid_app_misconfigured">
154154
<Step>
155-
<Name>AssignMessage.AppMisconfiguredErrorResponse</Name>
155+
<Condition>(isFhirR4Path = false)</Condition>
156+
<Name>AssignMessage.InternalServerError</Name>
157+
</Step>
158+
<Step>
159+
<Condition>(isFhirR4Path = true)</Condition>
160+
<Name>AssignMessage.SetOperationOutcomeVariablesR4</Name>
161+
</Step>
162+
<Step>
163+
<Condition>(isFhirR4Path = true)</Condition>
164+
<Name>AssignMessage.SetOperationOutcomeServiceError</Name>
165+
</Step>
166+
<Step>
167+
<Condition>(isFhirR4Path = true)</Condition>
168+
<Name>AssignMessage.OperationOutcomeErrorResponse</Name>
156169
</Step>
157-
<Condition>(raisefault.RaiseFault.CheckAllowlistFailed.failed = true) and (validation.errorMessage ~~ ".*service error.*")</Condition>
170+
<Condition>(raisefault.RaiseFault.CheckAllowlistFailed.failed = true) and (validation.statusCode = 500)</Condition>
158171
</FaultRule>
159172
</FaultRules>
160173
<PreFlow>

0 commit comments

Comments
 (0)