Skip to content

Commit 5cb90e5

Browse files
committed
Refactor document service to use 'table_name' type hint and improve variable naming
1 parent 96dd4a6 commit 5cb90e5

File tree

2 files changed

+24
-24
lines changed

2 files changed

+24
-24
lines changed

lambdas/services/document_service.py

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -54,19 +54,19 @@ def fetch_available_document_references_by_type(
5454
def fetch_documents_from_table_with_nhs_number(
5555
self,
5656
nhs_number: str,
57-
table: str = None,
57+
table: str | None = None,
5858
query_filter: Attr | ConditionBase = None,
5959
model_class: type[BaseModel] = None,
6060
) -> list:
6161
"""Fetch documents by NHS number from specified or configured table."""
62-
table_to_use = table or self.table_name
62+
table_name = table or self.table_name
6363

6464
documents = self.fetch_documents_from_table(
6565
index_name="NhsNumberIndex",
6666
search_key="NhsNumber",
6767
search_condition=nhs_number,
6868
query_filter=query_filter,
69-
table_name=table_to_use,
69+
table_name=table_name,
7070
model_class=model_class,
7171
)
7272
return documents
@@ -77,24 +77,24 @@ def fetch_documents_from_table(
7777
search_key: str,
7878
index_name: str | None = None,
7979
query_filter: Attr | ConditionBase = None,
80-
table_name: str = None,
80+
table_name: str | None = None,
8181
model_class: type[BaseModel] = None,
8282
) -> list:
8383
"""Fetch documents from specified or configured table using model_class."""
8484
documents = []
85-
table_to_use = table_name or self.table_name
86-
model_to_use = model_class or self.model_class
85+
table_name = table_name or self.table_name
86+
model_class = model_class or self.model_class
8787

8888
response = self.dynamo_service.query_table(
89-
table_name=table_to_use,
89+
table_name=table_name,
9090
index_name=index_name,
9191
search_key=search_key,
9292
search_condition=search_condition,
9393
query_filter=query_filter,
9494
)
9595
for item in response:
9696
try:
97-
document = model_to_use.model_validate(item)
97+
document = model_class.model_validate(item)
9898
documents.append(document)
9999
except ValidationError as e:
100100
logger.error(f"Validation error on document: {item}")
@@ -103,17 +103,17 @@ def fetch_documents_from_table(
103103
return documents
104104

105105
def get_nhs_numbers_based_on_ods_code(
106-
self, ods_code: str, table_name: str = None
106+
self, ods_code: str, table_name: str | None = None
107107
) -> list[str]:
108108
"""Get unique NHS numbers for patients with given ODS code."""
109-
table_to_use = table_name or self.table_name
109+
table_name = table_name or self.table_name
110110

111111
documents = self.fetch_documents_from_table(
112112
index_name="OdsCodeIndex",
113113
search_key=DocumentReferenceMetadataFields.CURRENT_GP_ODS.value,
114114
search_condition=ods_code,
115115
query_filter=NotDeleted,
116-
table_name=table_to_use,
116+
table_name=table_name,
117117
)
118118
nhs_numbers = list({document.nhs_number for document in documents})
119119
return nhs_numbers
@@ -169,15 +169,15 @@ def delete_document_object(self, bucket: str, key: str):
169169

170170
def update_document(
171171
self,
172-
table_name: str = None,
172+
table_name: str | None = None,
173173
document: BaseModel = None,
174-
update_fields_name: set[str] = None,
174+
update_fields_name: set[str] | None = None,
175175
):
176176
"""Update document in specified or configured table."""
177-
table_to_use = table_name or self.table_name
177+
table_name = table_name or self.table_name
178178

179179
self.dynamo_service.update_item(
180-
table_name=table_to_use,
180+
table_name=table_name,
181181
key_pair={DocumentReferenceMetadataFields.ID.value: document.id},
182182
updated_fields=document.model_dump(
183183
exclude_none=True, by_alias=True, include=update_fields_name
@@ -188,14 +188,14 @@ def hard_delete_metadata_records(
188188
self, table_name: str, document_references: list[BaseModel]
189189
):
190190
"""Permanently delete metadata from specified or configured table."""
191-
table_to_use = table_name or self.table_name
191+
table_name = table_name or self.table_name
192192

193-
logger.info(f"Deleting items in table: {table_to_use} (HARD DELETE)")
193+
logger.info(f"Deleting items in table: {table_name} (HARD DELETE)")
194194
primary_key_name = DocumentReferenceMetadataFields.ID.value
195195
for reference in document_references:
196196
primary_key_value = reference.id
197197
deletion_key = {primary_key_name: primary_key_value}
198-
self.dynamo_service.delete_item(table_to_use, deletion_key)
198+
self.dynamo_service.delete_item(table_name, deletion_key)
199199

200200
@staticmethod
201201
def is_upload_in_process(record: DocumentReference) -> bool:
@@ -212,12 +212,12 @@ def get_batch_document_references_by_id(
212212
) -> list:
213213
table_name = doc_type.get_dynamodb_table_name()
214214

215-
table_to_use = table_name or self.table_name
216-
model_to_use = self.model_class
215+
table_name = table_name or self.table_name
216+
model_class = self.model_class
217217

218218
response = self.dynamo_service.batch_get_items(
219-
table_name=table_to_use, key_list=document_ids
219+
table_name=table_name, key_list=document_ids
220220
)
221221

222-
found_docs = [model_to_use.model_validate(item) for item in response]
222+
found_docs = [model_class.model_validate(item) for item in response]
223223
return found_docs

lambdas/tests/unit/services/test_document_service.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -341,13 +341,13 @@ def test_get_nhs_numbers_based_on_ods_code(mock_service, mocker):
341341
)
342342

343343
result = mock_service.get_nhs_numbers_based_on_ods_code(
344-
ods_code, "test_lg_dynamoDB_table"
344+
ods_code, MOCK_LG_TABLE_NAME
345345
)
346346

347347
assert result == [expected_nhs_number]
348348

349349
mock_fetch.assert_called_once_with(
350-
table_name="test_lg_dynamoDB_table",
350+
table_name=MOCK_LG_TABLE_NAME,
351351
index_name="OdsCodeIndex",
352352
search_key=DocumentReferenceMetadataFields.CURRENT_GP_ODS.value,
353353
search_condition=ods_code,

0 commit comments

Comments
 (0)