Skip to content

Commit fe6937f

Browse files
authored
Merge pull request #970 from NHSDigital/feature/eema1-NRL-791-removeSuffixCustodians
NRL-791 remove ods code extension header and custodian suffix logic
2 parents 3d9c90a + c3e180c commit fe6937f

File tree

24 files changed

+24
-197
lines changed

24 files changed

+24
-197
lines changed

api/consumer/swagger.yaml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,6 @@ paths:
260260
- $ref: "#/components/parameters/category"
261261
- $ref: "#/components/parameters/nextPageToken"
262262
- $ref: "#/components/parameters/odsCode"
263-
- $ref: "#/components/parameters/odsCodeExtension"
264263
- $ref: "#/components/parameters/requestId"
265264
- $ref: "#/components/parameters/correlationId"
266265
responses:
@@ -516,7 +515,6 @@ paths:
516515
parameters:
517516
- $ref: "#/components/parameters/id"
518517
- $ref: "#/components/parameters/odsCode"
519-
- $ref: "#/components/parameters/odsCodeExtension"
520518
- $ref: "#/components/parameters/requestId"
521519
- $ref: "#/components/parameters/correlationId"
522520
responses:
@@ -1644,12 +1642,6 @@ components:
16441642
invalid:
16451643
summary: Unknown
16461644
value: XYZ
1647-
odsCodeExtension:
1648-
name: NHSD-End-User-Organisation
1649-
description: Organisation extension code
1650-
in: header
1651-
schema:
1652-
$ref: "#/components/schemas/RequestHeaderOrganisationExtensionCode"
16531645
requestId:
16541646
name: X-Request-ID
16551647
description: |

api/producer/createDocumentReference/create_document_reference.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,11 @@ def _check_permissions(
6464
"""
6565
Check the requester has permissions to create the DocumentReference
6666
"""
67-
custodian_parts = tuple(
68-
filter(None, (core_model.custodian, core_model.custodian_suffix))
69-
)
70-
if metadata.ods_code_parts != custodian_parts:
67+
if metadata.ods_code != core_model.custodian:
7168
logger.log(
7269
LogReference.PROCREATE004,
73-
ods_code_parts=metadata.ods_code_parts,
74-
custodian_parts=custodian_parts,
70+
ods_code=metadata.ods_code,
71+
custodian=core_model.custodian,
7572
)
7673
return SpineErrorResponse.UNPROCESSABLE_ENTITY(
7774
diagnostics="The custodian of the provided DocumentReference does not match the expected ODS code for this organisation",
@@ -138,11 +135,11 @@ def _validate_producer_id(identifier, metadata, idx):
138135
Validate that there is an ODS code in the relatesTo target identifier
139136
"""
140137
producer_id = identifier.split("-", 1)[0]
141-
if metadata.ods_code_parts != tuple(producer_id.split("|")):
138+
if metadata.ods_code != producer_id:
142139
logger.log(
143140
LogReference.PROCREATE007b,
144141
related_identifier=identifier,
145-
ods_code_parts=metadata.ods_code_parts,
142+
ods_code=metadata.ods_code,
146143
)
147144
_raise_operation_outcome_error(
148145
"The relatesTo target identifier value does not include the expected ODS code for this organisation",
@@ -229,8 +226,7 @@ def handler(
229226
logger.log(LogReference.PROCREATE000)
230227
logger.log(LogReference.PROCREATE001, resource=body)
231228

232-
id_prefix = "|".join(metadata.ods_code_parts)
233-
body.id = f"{id_prefix}-{uuid4()}"
229+
body.id = f"{metadata.ods_code}-{uuid4()}"
234230

235231
validator = DocumentReferenceValidator()
236232
result = validator.validate(body)

api/producer/deleteDocumentReference/delete_document_reference.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ def handler(
2828
pointer_id = urllib.parse.unquote(path.id)
2929
producer_id, _ = pointer_id.split("-", 1)
3030

31-
if metadata.ods_code_parts != tuple(producer_id.split(".")):
31+
if metadata.ods_code != producer_id:
3232
logger.log(
3333
LogReference.PRODELETE001,
34-
ods_code_parts=metadata.ods_code_parts,
34+
ods_code=metadata.ods_code,
3535
producer_id=producer_id,
3636
)
3737
return SpineErrorResponse.AUTHOR_CREDENTIALS_ERROR(

api/producer/readDocumentReference/read_document_reference.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ def handler(
3838
parsed_id = urllib.parse.unquote(path.id)
3939

4040
producer_id = parsed_id.split("-", maxsplit=1)[0]
41-
if metadata.ods_code_parts != tuple(producer_id.split(".")):
41+
if metadata.ods_code != producer_id:
4242
logger.log(
4343
LogReference.PROREAD001,
44-
ods_code_parts=metadata.ods_code_parts,
44+
ods_code=metadata.ods_code,
4545
producer_id=producer_id,
4646
)
4747
return SpineErrorResponse.AUTHOR_CREDENTIALS_ERROR(

api/producer/searchDocumentReference/search_document_reference.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,15 +80,13 @@ def handler(
8080
logger.log(
8181
LogReference.PROSEARCH003,
8282
custodian=metadata.ods_code,
83-
custodian_suffix=metadata.ods_code_extension,
8483
nhs_number=params.nhs_number,
8584
pointer_types=pointer_types,
8685
categories=params.category.root.split(",") if params.category else [],
8786
)
8887

8988
for result in repository.search(
9089
custodian=metadata.ods_code,
91-
custodian_suffix=metadata.ods_code_extension,
9290
nhs_number=params.nhs_number,
9391
pointer_types=pointer_types,
9492
categories=params.category.root.split(",") if params.category else [],

api/producer/searchPostDocumentReference/search_post_document_reference.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,13 @@ def handler(
7474
logger.log(
7575
LogReference.PROPOSTSEARCH003,
7676
custodian=metadata.ods_code,
77-
custodian_suffix=metadata.ods_code_extension,
7877
nhs_number=body.nhs_number,
7978
pointer_types=pointer_types,
8079
categories=categories,
8180
)
8281

8382
for result in repository.search(
8483
custodian=metadata.ods_code,
85-
custodian_suffix=metadata.ods_code_extension,
8684
nhs_number=body.nhs_number,
8785
pointer_types=pointer_types,
8886
categories=categories,

api/producer/swagger.yaml

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,6 @@ paths:
267267
$ref: "#/components/requestBodies/DocumentReference"
268268
parameters:
269269
- $ref: "#/components/parameters/odsCode"
270-
- $ref: "#/components/parameters/odsCodeExtension"
271270
- $ref: "#/components/parameters/requestId"
272271
- $ref: "#/components/parameters/correlationId"
273272
x-amazon-apigateway-integration:
@@ -408,7 +407,6 @@ paths:
408407
- $ref: "#/components/parameters/category"
409408
- $ref: "#/components/parameters/nextPageToken"
410409
- $ref: "#/components/parameters/odsCode"
411-
- $ref: "#/components/parameters/odsCodeExtension"
412410
- $ref: "#/components/parameters/requestId"
413411
- $ref: "#/components/parameters/correlationId"
414412
responses:
@@ -610,7 +608,6 @@ paths:
610608
operationId: upsertDocumentReference
611609
parameters:
612610
- $ref: "#/components/parameters/odsCode"
613-
- $ref: "#/components/parameters/odsCodeExtension"
614611
- $ref: "#/components/parameters/requestId"
615612
- $ref: "#/components/parameters/correlationId"
616613
responses:
@@ -687,7 +684,6 @@ paths:
687684
operationId: searchPostDocumentReference
688685
parameters:
689686
- $ref: "#/components/parameters/odsCode"
690-
- $ref: "#/components/parameters/odsCodeExtension"
691687
- $ref: "#/components/parameters/requestId"
692688
- $ref: "#/components/parameters/correlationId"
693689
requestBody:
@@ -902,7 +898,6 @@ paths:
902898
parameters:
903899
- $ref: "#/components/parameters/id"
904900
- $ref: "#/components/parameters/odsCode"
905-
- $ref: "#/components/parameters/odsCodeExtension"
906901
- $ref: "#/components/parameters/requestId"
907902
- $ref: "#/components/parameters/correlationId"
908903
responses:
@@ -1005,7 +1000,6 @@ paths:
10051000
parameters:
10061001
- $ref: "#/components/parameters/id"
10071002
- $ref: "#/components/parameters/odsCode"
1008-
- $ref: "#/components/parameters/odsCodeExtension"
10091003
- $ref: "#/components/parameters/requestId"
10101004
- $ref: "#/components/parameters/correlationId"
10111005
responses:
@@ -1084,7 +1078,6 @@ paths:
10841078
parameters:
10851079
- $ref: "#/components/parameters/id"
10861080
- $ref: "#/components/parameters/odsCode"
1087-
- $ref: "#/components/parameters/odsCodeExtension"
10881081
- $ref: "#/components/parameters/requestId"
10891082
- $ref: "#/components/parameters/correlationId"
10901083
responses:
@@ -2247,12 +2240,6 @@ components:
22472240
invalid:
22482241
summary: Unknown
22492242
value: XYZ
2250-
odsCodeExtension:
2251-
name: NHSD-End-User-Organisation
2252-
description: Organisation extension code
2253-
in: header
2254-
schema:
2255-
$ref: "#/components/schemas/RequestHeaderOrganisationExtensionCode"
22562243
requestId:
22572244
name: X-Request-ID
22582245
description: |

api/producer/updateDocumentReference/tests/test_update_document_reference.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ def test_update_document_reference_happy_path(repository: DocumentPointerReposit
3030

3131
existing_doc_pointer = repository.get_by_id("Y05868-99999-99999-999999")
3232
assert existing_doc_pointer is not None
33-
3433
existing_doc_ref = DocumentReference.model_validate_json(
3534
existing_doc_pointer.document
3635
)

api/producer/updateDocumentReference/update_document_reference.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ def handler(
6161

6262
core_model = DocumentPointer.from_document_reference(document_reference)
6363

64-
if metadata.ods_code_parts != tuple(core_model.producer_id.split("|")):
64+
if metadata.ods_code != core_model.producer_id:
6565
logger.log(
6666
LogReference.PROUPDATE004,
67-
metadata_ods_code_parts=metadata.ods_code_parts,
67+
metadata_ods_code=metadata.ods_code,
6868
producer_id=core_model.producer_id,
6969
)
7070
return SpineErrorResponse.AUTHOR_CREDENTIALS_ERROR(

api/producer/upsertDocumentReference/upsert_document_reference.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,11 @@ def _check_permissions(
6262
"""
6363
Check the requester has permissions to create the DocumentReference
6464
"""
65-
custodian_parts = tuple(
66-
filter(None, (core_model.custodian, core_model.custodian_suffix))
67-
)
68-
if metadata.ods_code_parts != custodian_parts:
65+
if metadata.ods_code != core_model.custodian:
6966
logger.log(
7067
LogReference.PROUPSERT004,
71-
ods_code_parts=metadata.ods_code_parts,
72-
custodian_parts=custodian_parts,
68+
ods_code=metadata.ods_code,
69+
custodian=core_model.custodian,
7370
)
7471
return SpineErrorResponse.UNPROCESSABLE_ENTITY(
7572
diagnostics="The custodian of the provided DocumentReference does not match the expected ODS code for this organisation",
@@ -141,11 +138,11 @@ def _validate_producer_id(identifier, metadata, idx):
141138
Validate that there is an ODS code in the relatesTo target identifier
142139
"""
143140
producer_id = identifier.split("-", 1)[0]
144-
if metadata.ods_code_parts != tuple(producer_id.split("|")):
141+
if metadata.ods_code != producer_id:
145142
logger.log(
146143
LogReference.PROUPSERT007b,
147144
related_identifier=identifier,
148-
ods_code_parts=metadata.ods_code_parts,
145+
ods_code=metadata.ods_code,
149146
)
150147
_raise_operation_outcome_error(
151148
"The relatesTo target identifier value does not include the expected ODS code for this organisation",
@@ -233,10 +230,10 @@ def handler(
233230

234231
core_model = _create_core_model(result.resource, metadata)
235232

236-
if metadata.ods_code_parts != tuple(core_model.producer_id.split("|")):
233+
if metadata.ods_code != core_model.producer_id:
237234
logger.log(
238235
LogReference.PROUPSERT003,
239-
ods_code_parts=metadata.ods_code_parts,
236+
ods_code=metadata.ods_code,
240237
producer_id=core_model.producer_id,
241238
)
242239
return SpineErrorResponse.UNPROCESSABLE_ENTITY(

0 commit comments

Comments
 (0)