Skip to content

Commit ddf219a

Browse files
Refactor test reset endpoint to use PatientDeleter
Jira-Issue: MAV-7067
1 parent bbec131 commit ddf219a

2 files changed

Lines changed: 12 additions & 39 deletions

File tree

app/controllers/api/testing/teams_controller.rb

Lines changed: 7 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -57,43 +57,10 @@ def destroy
5757
)
5858
)
5959

60-
patient_ids = team.patients.pluck(:id)
61-
62-
log_destroy(
63-
PatientLocation.joins_team_locations.where(team_locations: { team_id: })
64-
)
65-
66-
log_destroy(AccessLogEntry.where(patient_id: patient_ids))
67-
log_destroy(ArchiveReason.where(patient_id: patient_ids))
68-
log_destroy(AttendanceRecord.where(patient_id: patient_ids))
69-
log_destroy(ConsentNotification.where(patient_id: patient_ids))
70-
log_destroy(GillickAssessment.where(patient_id: patient_ids))
71-
log_destroy(Note.where(patient_id: patient_ids))
7260
# In local dev we can end up with NotifyLogEntries without a patient
7361
log_destroy(NotifyLogEntry.where(patient_id: nil))
74-
log_destroy(NotifyLogEntry.where(patient_id: patient_ids))
75-
log_destroy(PatientChangeset.where(patient_id: patient_ids))
76-
log_destroy(PatientLocation.where(patient_id: patient_ids))
77-
log_destroy(PatientMergeLogEntry.where(patient_id: patient_ids))
78-
log_destroy(PatientSpecificDirection.where(patient_id: patient_ids))
79-
log_destroy(PDSSearchResult.where(patient_id: patient_ids))
80-
log_destroy(PreScreening.where(patient_id: patient_ids))
81-
log_destroy(SchoolMove.where(patient_id: patient_ids))
82-
log_destroy(SchoolMoveLogEntry.where(patient_id: patient_ids))
83-
log_destroy(VaccinationRecord.where(patient_id: patient_ids))
84-
log_destroy(Triage.where(patient_id: patient_ids))
85-
log_destroy(ImportantNotice.where(patient_id: patient_ids))
86-
87-
log_destroy(ParentRelationship.where(patient_id: patient_ids))
88-
log_destroy(
89-
PatientProgrammeVaccinationsSearch.where(patient_id: patient_ids)
90-
)
91-
log_destroy(Patient.where(id: patient_ids))
9262

93-
log_destroy(
94-
Consent.where(parent: Parent.where.missing(:parent_relationships))
95-
)
96-
log_destroy(Parent.where.missing(:parent_relationships))
63+
log_destroy_patients(patients: team.patients)
9764

9865
log_destroy(Batch.where(team:))
9966

@@ -103,10 +70,6 @@ def destroy
10370

10471
log_destroy(Triage.where(team:))
10572

106-
# These should have been deleted anyway due to the foreign key cascade, but
107-
# just to be safe.
108-
log_destroy(PatientTeam.where(team:))
109-
11073
TeamCachedCounts.new(team).reset_all!
11174

11275
log_destroy(Session.for_team(team))
@@ -186,4 +149,10 @@ def log_destroy(query)
186149
)
187150
@log_time = Time.zone.now
188151
end
152+
153+
def log_destroy_patients(patients:)
154+
PatientDeleter.call(patients:)
155+
response.stream.write("PatientDeleter.call(patients: team.patients)")
156+
@log_time = Time.zone.now
157+
end
189158
end

spec/controllers/api/testing/teams_controller_spec.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44
include ActiveJob::TestHelper
55
include ImportsHelper
66

7-
before { Flipper.enable(:testing_api) }
7+
before do
8+
Flipper.enable(:testing_api)
9+
allow(Rails.env).to receive(:production?).and_return(false)
10+
end
11+
812
after { Flipper.disable(:testing_api) }
913

1014
around { |example| travel_to(Date.new(2025, 7, 31)) { example.run } }

0 commit comments

Comments
 (0)