Skip to content

Commit 64a0c58

Browse files
committed
Add Vaccine#INJECTION_DELIVERY_METHODS
This moves the constant out of the `DraftVaccinationRecord` model so it can be used in different places.
1 parent 06469bd commit 64a0c58

2 files changed

Lines changed: 11 additions & 17 deletions

File tree

app/models/draft_vaccination_record.rb

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,6 @@ def self.request_session_key
3838
if: :performed_by_user
3939
}
4040

41-
INJECTION_DELIVERY_METHODS =
42-
Vaccine::AVAILABLE_DELIVERY_METHODS["injection"].freeze
43-
4441
def wizard_steps
4542
[
4643
:notes,
@@ -207,8 +204,8 @@ def delivery_method=(value)
207204
super
208205
return if delivery_method_was.nil? # Don't clear batch on first set
209206

210-
previous_value = compute_vaccine_method(delivery_method_was)
211-
new_value = compute_vaccine_method(value)
207+
previous_value = delivery_method_to_vaccine_method(delivery_method_was)
208+
new_value = delivery_method_to_vaccine_method(value)
212209

213210
self.batch_id = nil unless previous_value == new_value
214211
end
@@ -258,16 +255,10 @@ def vaccine_method_matches_consent_and_triage?
258255
def delivery_method_to_vaccine_method(delivery_method)
259256
return nil if delivery_method.nil?
260257

261-
delivery_method.in?(INJECTION_DELIVERY_METHODS) ? "injection" : "nasal"
262-
end
263-
264-
def compute_vaccine_method(delivery_method)
265-
return nil if delivery_method.nil?
266-
267-
if delivery_method.in?(INJECTION_DELIVERY_METHODS)
258+
if delivery_method.in?(Vaccine::INJECTION_DELIVERY_METHODS)
268259
"injection"
269260
else
270-
"nasal_spray"
261+
"nasal"
271262
end
272263
end
273264

@@ -328,11 +319,11 @@ def delivery_site_matches_delivery_method
328319
end
329320

330321
case delivery_method
331-
when "nasal_spray"
322+
when *Vaccine::NASAL_DELIVERY_METHODS
332323
if delivery_site != "nose"
333324
errors.add(:delivery_site, :nasal_spray_must_be_nose)
334325
end
335-
when *INJECTION_DELIVERY_METHODS
326+
when *Vaccine::INJECTION_DELIVERY_METHODS
336327
if delivery_site == "nose"
337328
errors.add(:delivery_site, :injection_cannot_be_nose)
338329
end

app/models/vaccine.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,12 @@ def available_delivery_sites
7979
AVAILABLE_DELIVERY_SITES.fetch(method)
8080
end
8181

82+
NASAL_DELIVERY_METHODS = %w[nasal_spray].freeze
83+
INJECTION_DELIVERY_METHODS = %w[intramuscular subcutaneous].freeze
84+
8285
AVAILABLE_DELIVERY_METHODS = {
83-
"nasal" => %w[nasal_spray],
84-
"injection" => %w[intramuscular subcutaneous]
86+
"nasal" => NASAL_DELIVERY_METHODS,
87+
"injection" => INJECTION_DELIVERY_METHODS
8588
}.freeze
8689

8790
def available_delivery_methods

0 commit comments

Comments
 (0)