Skip to content

Commit 66aaaec

Browse files
committed
remove redundant UpdateOutcome
1 parent e02b345 commit 66aaaec

File tree

4 files changed

+24
-29
lines changed

4 files changed

+24
-29
lines changed

backend/src/controller/fhir_controller.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
from models.utils.generic_utils import check_keys_in_sources
3333
from parameter_parser import create_query_string, process_params, process_search_params
3434
from repository.fhir_repository import ImmunizationRepository, create_table
35-
from service.fhir_service import FhirService, UpdateOutcome, get_service_url
35+
from service.fhir_service import FhirService, get_service_url
3636

3737
IMMUNIZATION_ENV = os.getenv("IMMUNIZATION_ENV")
3838

@@ -297,7 +297,7 @@ def update_immunization(self, aws_event):
297297
diagnostics=resource["diagnostics"],
298298
)
299299
return create_response(400, json.dumps(exp_error))
300-
if outcome == UpdateOutcome.UPDATE:
300+
if outcome:
301301
return create_response(
302302
200, None, {"E-Tag": updated_version}
303303
) # include e-tag here, is it not included in the response resource

backend/src/service/fhir_service.py

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,6 @@ def get_service_url(
7070
return f"https://{subdomain}api.service.nhs.uk/{service_base_path}"
7171

7272

73-
class UpdateOutcome(Enum):
74-
UPDATE = 0
75-
CREATE = 1
76-
77-
7873
class FhirService:
7974
def __init__(
8075
self,
@@ -168,13 +163,13 @@ def update_immunization(
168163
existing_resource_version: int,
169164
existing_resource_vacc_type: str,
170165
supplier_system: str,
171-
) -> tuple[Optional[UpdateOutcome], Immunization | dict, Optional[int]]:
166+
) -> tuple[bool, Immunization | dict, Optional[int]]:
172167
# VED-747 - TODO - this and the below 2 methods are duplicated. We should streamline the update journey
173168
immunization["id"] = imms_id
174169

175170
patient = self._validate_patient(immunization)
176171
if "diagnostics" in patient:
177-
return None, patient, None
172+
return False, patient, None
178173

179174
vaccination_type = get_vaccine_type(immunization)
180175

@@ -191,7 +186,7 @@ def update_immunization(
191186
imms_id, immunization, patient, existing_resource_version, supplier_system
192187
)
193188

194-
return UpdateOutcome.UPDATE, Immunization.parse_obj(imms), updated_version
189+
return True, Immunization.parse_obj(imms), updated_version
195190

196191
def reinstate_immunization(
197192
self,
@@ -200,11 +195,11 @@ def reinstate_immunization(
200195
existing_resource_version: int,
201196
existing_resource_vacc_type: str,
202197
supplier_system: str,
203-
) -> tuple[Optional[UpdateOutcome], Immunization | dict, Optional[int]]:
198+
) -> tuple[bool, Immunization | dict, Optional[int]]:
204199
immunization["id"] = imms_id
205200
patient = self._validate_patient(immunization)
206201
if "diagnostics" in patient:
207-
return None, patient, None
202+
return False, patient, None
208203

209204
vaccination_type = get_vaccine_type(immunization)
210205

@@ -219,7 +214,7 @@ def reinstate_immunization(
219214
imms_id, immunization, patient, existing_resource_version, supplier_system
220215
)
221216

222-
return UpdateOutcome.UPDATE, Immunization.parse_obj(imms), updated_version
217+
return True, Immunization.parse_obj(imms), updated_version
223218

224219
def update_reinstated_immunization(
225220
self,
@@ -228,11 +223,11 @@ def update_reinstated_immunization(
228223
existing_resource_version: int,
229224
existing_resource_vacc_type: str,
230225
supplier_system: str,
231-
) -> tuple[Optional[UpdateOutcome], Immunization | dict, Optional[int]]:
226+
) -> tuple[bool, Immunization | dict, Optional[int]]:
232227
immunization["id"] = imms_id
233228
patient = self._validate_patient(immunization)
234229
if "diagnostics" in patient:
235-
return None, patient, None
230+
return False, patient, None
236231

237232
vaccination_type = get_vaccine_type(immunization)
238233

@@ -251,7 +246,7 @@ def update_reinstated_immunization(
251246
supplier_system,
252247
)
253248

254-
return UpdateOutcome.UPDATE, Immunization.parse_obj(imms), updated_version
249+
return True, Immunization.parse_obj(imms), updated_version
255250

256251
def delete_immunization(self, imms_id: str, supplier_system: str) -> None:
257252
"""

backend/tests/controller/test_fhir_controller.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
)
2323
from parameter_parser import patient_identifier_system, process_search_params
2424
from repository.fhir_repository import ImmunizationRepository
25-
from service.fhir_service import FhirService, UpdateOutcome
25+
from service.fhir_service import FhirService
2626
from testing_utils.generic_utils import load_json_data
2727
from testing_utils.immunization_utils import create_covid_19_immunization
2828

@@ -951,7 +951,7 @@ def test_update_immunization(self):
951951
"pathParameters": {"id": imms_id},
952952
}
953953
self.service.update_immunization.return_value = (
954-
UpdateOutcome.UPDATE,
954+
True,
955955
"value doesn't matter",
956956
2,
957957
)
@@ -1055,7 +1055,7 @@ def test_update_immunization_for_batch_existing_record_is_none(self):
10551055
"pathParameters": {"id": imms_id},
10561056
}
10571057
self.service.update_immunization.return_value = (
1058-
UpdateOutcome.UPDATE,
1058+
True,
10591059
"value doesn't matter",
10601060
)
10611061
self.service.get_immunization_by_id_all.return_value = None
@@ -1104,7 +1104,7 @@ def test_update_deletedat_immunization_with_version(self):
11041104
"body": imms,
11051105
"pathParameters": {"id": imms_id},
11061106
}
1107-
self.service.reinstate_immunization.return_value = UpdateOutcome.UPDATE, {}, 2
1107+
self.service.reinstate_immunization.return_value = True, {}, 2
11081108
self.service.get_immunization_by_id_all.return_value = {
11091109
"resource": "new_value",
11101110
"Version": 1,
@@ -1128,7 +1128,7 @@ def test_update_deletedat_immunization_without_version(self):
11281128
"body": imms,
11291129
"pathParameters": {"id": imms_id},
11301130
}
1131-
self.service.reinstate_immunization.return_value = UpdateOutcome.UPDATE, {}, 2
1131+
self.service.reinstate_immunization.return_value = True, {}, 2
11321132
self.service.get_immunization_by_id_all.return_value = {
11331133
"resource": "new_value",
11341134
"Version": 1,
@@ -1311,7 +1311,7 @@ def test_update_immunization_when_reinstated_true(self):
13111311
"pathParameters": {"id": imms_id},
13121312
}
13131313
self.service.update_reinstated_immunization.return_value = (
1314-
UpdateOutcome.UPDATE,
1314+
True,
13151315
{},
13161316
3,
13171317
)
@@ -1359,7 +1359,7 @@ def test_update_reinstated_immunization_with_diagnostics_error(self):
13591359
"VaccineType": "COVID19",
13601360
}
13611361
self.service.reinstate_immunization.return_value = (
1362-
None,
1362+
False,
13631363
{"diagnostics": "Patient NHS number has been superseded"},
13641364
None,
13651365
)

backend/tests/service/test_fhir_service.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from models.fhir_immunization import ImmunizationValidator
2727
from models.utils.generic_utils import get_contained_patient
2828
from repository.fhir_repository import ImmunizationRepository
29-
from service.fhir_service import FhirService, UpdateOutcome, get_service_url
29+
from service.fhir_service import FhirService, get_service_url
3030
from testing_utils.generic_utils import load_json_data
3131
from testing_utils.immunization_utils import (
3232
VALID_NHS_NUMBER,
@@ -638,7 +638,7 @@ def test_update_immunization(self):
638638
outcome, _, _ = self.fhir_service.update_immunization(imms_id, req_imms, 1, "COVID19", "Test")
639639

640640
# Then
641-
self.assertEqual(outcome, UpdateOutcome.UPDATE)
641+
self.assertTrue(outcome)
642642
self.imms_repo.update_immunization.assert_called_once_with(imms_id, req_imms, req_patient, 1, "Test")
643643
self.authoriser.authorise.assert_called_once_with("Test", ApiOperationCode.UPDATE, {"COVID19"})
644644

@@ -700,7 +700,7 @@ def test_reinstate_immunization_returns_updated_version(self):
700700

701701
outcome, resource, version = self.fhir_service.reinstate_immunization(imms_id, req_imms, 1, "COVID19", "Test")
702702

703-
self.assertEqual(outcome, UpdateOutcome.UPDATE)
703+
self.assertTrue(outcome)
704704
self.assertEqual(version, 5)
705705

706706
def test_reinstate_immunization_raises_exception_when_missing_authz(self):
@@ -728,7 +728,7 @@ def test_update_reinstated_immunization_returns_updated_version(self):
728728
imms_id, req_imms, 1, "COVID19", "Test"
729729
)
730730

731-
self.assertEqual(outcome, UpdateOutcome.UPDATE)
731+
self.assertTrue(outcome)
732732
self.assertEqual(version, 9)
733733

734734
def test_reinstate_immunization_with_diagnostics(self):
@@ -739,7 +739,7 @@ def test_reinstate_immunization_with_diagnostics(self):
739739

740740
outcome, resource, version = self.fhir_service.reinstate_immunization(imms_id, req_imms, 1, "COVID19", "Test")
741741

742-
self.assertIsNone(outcome)
742+
self.assertFalse(outcome)
743743
self.assertEqual(resource, {"diagnostics": "invalid patient"})
744744
self.assertIsNone(version)
745745
self.imms_repo.reinstate_immunization.assert_not_called()
@@ -754,7 +754,7 @@ def test_update_reinstated_immunization_with_diagnostics(self):
754754
imms_id, req_imms, 1, "COVID19", "Test"
755755
)
756756

757-
self.assertIsNone(outcome)
757+
self.assertFalse(outcome)
758758
self.assertEqual(resource, {"diagnostics": "invalid patient"})
759759
self.assertIsNone(version)
760760
self.imms_repo.update_reinstated_immunization.assert_not_called()

0 commit comments

Comments
 (0)