Skip to content

Commit 526e938

Browse files
committed
NRL-791 remove ods code extension header and custodian suffix logic
1 parent 7c46e08 commit 526e938

File tree

22 files changed

+24
-195
lines changed

22 files changed

+24
-195
lines changed

api/consumer/swagger.yaml

Lines changed: 0 additions & 9 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:
@@ -620,7 +618,6 @@ paths:
620618
parameters:
621619
- $ref: "#/components/parameters/subject"
622620
- $ref: "#/components/parameters/odsCode"
623-
- $ref: "#/components/parameters/odsCodeExtension"
624621
- $ref: "#/components/parameters/requestId"
625622
- $ref: "#/components/parameters/correlationId"
626623
responses:
@@ -1660,12 +1657,6 @@ components:
16601657
invalid:
16611658
summary: Unknown
16621659
value: XYZ
1663-
odsCodeExtension:
1664-
name: NHSD-End-User-Organisation
1665-
description: Organisation extension code
1666-
in: header
1667-
schema:
1668-
$ref: "#/components/schemas/RequestHeaderOrganisationExtensionCode"
16691660
requestId:
16701661
name: X-Request-ID
16711662
description: |

api/producer/createDocumentReference/create_document_reference.py

Lines changed: 7 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(
72-
LogReference.PROCREATE004,
73-
ods_code_parts=metadata.ods_code_parts,
74-
custodian_parts=custodian_parts,
69+
LogReference.PROUPSERT004,
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 != tuple(producer_id.split("|")):
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,7 +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)
229+
id_prefix = f"|{metadata.ods_code}"
233230
body.id = f"{id_prefix}-{uuid4()}"
234231

235232
validator = DocumentReferenceValidator()

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 != tuple(producer_id.split(".")):
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 != tuple(producer_id.split(".")):
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/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 != tuple(core_model.producer_id.split("|")):
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 != tuple(producer_id.split("|")):
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 != tuple(core_model.producer_id.split("|")):
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(

layer/nrlf/core/authoriser.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,8 @@ def get_pointer_types(
1717

1818
app_id = connection_metadata.nrl_app_id
1919
ods_code = connection_metadata.ods_code
20-
ods_code_extension = connection_metadata.ods_code_extension
2120

22-
if ods_code_extension:
23-
key = f"{app_id}/{ods_code}.{ods_code_extension}.json"
24-
else:
25-
key = f"{app_id}/{ods_code}.json"
21+
key = f"{app_id}/{ods_code}.json"
2622

2723
logger.log(LogReference.S3PERMISSIONS001, bucket=config.AUTH_STORE, key=key)
2824
s3_client = get_s3_client()
@@ -63,12 +59,8 @@ def parse_permissions_file(
6359

6460
app_id = connection_metadata.nrl_app_id
6561
ods_code = connection_metadata.ods_code
66-
ods_code_extension = connection_metadata.ods_code_extension
6762

68-
if ods_code_extension:
69-
key = f"{app_id}/{ods_code}.{ods_code_extension}.json"
70-
else:
71-
key = f"{app_id}/{ods_code}.json"
63+
key = f"{app_id}/{ods_code}.json"
7264

7365
file_path = f"/opt/python/nrlf_permissions/{key}"
7466

0 commit comments

Comments
 (0)