Skip to content

Commit 2b2aa9d

Browse files
authored
[NDR-183] Bulk upload missing scan_date field in metadata (#700)
* [NDR-183] add logic to handle missing scan data * [NDR-183] remove default value for scan date
1 parent 4314a78 commit 2b2aa9d

File tree

3 files changed

+29
-4
lines changed

3 files changed

+29
-4
lines changed

lambdas/models/document_reference.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class DocumentReference(BaseModel):
4848
created: str = Field(
4949
default_factory=lambda: datetime.now(timezone.utc).strftime(DATE_FORMAT)
5050
)
51-
document_scan_creation: str = Field(
51+
document_scan_creation: Optional[str] = Field(
5252
default_factory=lambda: datetime.date(datetime.now()).isoformat(),
5353
)
5454
current_gp_ods: str = Field(default=None)

lambdas/services/bulk_upload_service.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -389,9 +389,12 @@ def convert_to_document_reference(
389389
) -> DocumentReference:
390390
s3_bucket_name = self.bulk_upload_s3_repository.lg_bucket_name
391391
file_name = os.path.basename(file_metadata.file_path)
392-
scan_date_formatted = datetime.strptime(
393-
file_metadata.scan_date, "%d/%m/%Y"
394-
).strftime("%Y-%m-%d")
392+
if file_metadata.scan_date:
393+
scan_date_formatted = datetime.strptime(
394+
file_metadata.scan_date, "%d/%m/%Y"
395+
).strftime("%Y-%m-%d")
396+
else:
397+
scan_date_formatted = None
395398
document_reference = DocumentReference(
396399
id=str(uuid.uuid4()),
397400
nhs_number=nhs_number,

lambdas/tests/unit/services/test_bulk_upload_service.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -887,6 +887,28 @@ def test_convert_to_document_reference(set_env, mock_uuid, repo_under_test):
887887
assert actual == expected
888888

889889

890+
@freeze_time("2024-01-01 12:00:00")
891+
def test_convert_to_document_reference_missing_scan_date(
892+
set_env, mock_uuid, repo_under_test
893+
):
894+
TEST_STAGING_METADATA.retries = 0
895+
repo_under_test.bulk_upload_s3_repository.lg_bucket_name = "test_lg_s3_bucket"
896+
expected = TEST_DOCUMENT_REFERENCE
897+
expected.document_scan_creation = None
898+
TEST_FILE_METADATA.scan_date = ""
899+
900+
actual = repo_under_test.convert_to_document_reference(
901+
file_metadata=TEST_FILE_METADATA,
902+
nhs_number=TEST_STAGING_METADATA.nhs_number,
903+
current_gp_ods=TEST_CURRENT_GP_ODS,
904+
)
905+
906+
assert actual == expected
907+
908+
TEST_FILE_METADATA.scan_date = "03/09/2022"
909+
TEST_DOCUMENT_REFERENCE.document_scan_creation = "2022-09-03"
910+
911+
890912
def test_raise_client_error_from_ssm_with_pds_service(
891913
mock_ods_validation,
892914
repo_under_test,

0 commit comments

Comments
 (0)