Skip to content

Commit 00e57d3

Browse files
committed
NRL-703 switch to bool arg instead
1 parent 37e16bf commit 00e57d3

File tree

2 files changed

+7
-19
lines changed

2 files changed

+7
-19
lines changed

api/producer/upsertDocumentReference/upsert_document_reference.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@ def handler(
108108

109109
if result.resource.relatesTo:
110110
logger.log(LogReference.PROUPSERT006, relatesTo=result.resource.relatesTo)
111+
can_ignore_delete_fail = (
112+
PERMISSION_SUPERSEDE_IGNORE_DELETE_FAIL in metadata.nrl_permissions
113+
)
111114

112115
for idx, relates_to in enumerate(result.resource.relatesTo):
113116
if not (identifier := getattr(relates_to.target.identifier, "value", None)):
@@ -128,7 +131,7 @@ def handler(
128131
diagnostics="The relatesTo target identifier value does not include the expected ODS code for this organisation",
129132
expression=f"relatesTo[{idx}].target.identifier.value",
130133
)
131-
if PERMISSION_SUPERSEDE_IGNORE_DELETE_FAIL not in metadata.nrl_permissions:
134+
if not can_ignore_delete_fail:
132135
if not (existing_pointer := repository.get_by_id(identifier)):
133136
logger.log(
134137
LogReference.PROCREATE007c, related_identifier=identifier
@@ -171,7 +174,7 @@ def handler(
171174
ids_to_delete=ids_to_delete,
172175
)
173176
saved_model = repository.supersede(
174-
core_model, ids_to_delete, metadata.nrl_permissions
177+
core_model, ids_to_delete, can_ignore_delete_fail
175178
)
176179
logger.log(LogReference.PROUPSERT999)
177180
return NRLResponse.RESOURCE_SUPERSEDED(resource_id=saved_model.id)

layer/nrlf/core/dynamodb/repository.py

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
from nrlf.core.boto import get_dynamodb_resource, get_dynamodb_table
99
from nrlf.core.codes import SpineErrorConcept
10-
from nrlf.core.constants import PERMISSION_SUPERSEDE_IGNORE_DELETE_FAIL
1110
from nrlf.core.dynamodb.model import DocumentPointer, DynamoDBModel
1211
from nrlf.core.errors import OperationOutcomeError
1312
from nrlf.core.logger import LogReference, logger
@@ -378,13 +377,11 @@ def supersede(
378377
self,
379378
item: DocumentPointer,
380379
ids_to_delete: List[str],
381-
nrl_permissions: list[str] = [],
380+
can_ignore_delete_fail: list[str] = [],
382381
) -> DocumentPointer:
383382
""" """
384383
saved_item = self.create(item)
385-
can_ignore_delete_fail = (
386-
PERMISSION_SUPERSEDE_IGNORE_DELETE_FAIL in nrl_permissions
387-
)
384+
388385
for id_ in ids_to_delete:
389386
self.delete_by_id(id_, can_ignore_delete_fail)
390387

@@ -434,18 +431,6 @@ def delete_by_id(self, id_: str, can_ignore_delete_fail: bool = False):
434431
error=str(exc),
435432
)
436433
return
437-
logger.log(
438-
LogReference.REPOSITORY026,
439-
exc_info=sys.exc_info(),
440-
stacklevel=5,
441-
error=str(exc),
442-
)
443-
raise OperationOutcomeError(
444-
status_code="500",
445-
severity="error",
446-
code="exception",
447-
details=SpineErrorConcept.from_code("INTERNAL_SERVER_ERROR"),
448-
) from exc
449434

450435
def _query(self, **kwargs) -> Iterator[DocumentPointer]:
451436
"""

0 commit comments

Comments
 (0)