Skip to content

Commit

Permalink
Re-organise GOV.UK Notify templates
Browse files Browse the repository at this point in the history
This renames the labels used to reference the templates so that the
mailer class actions, email and text templates all match and use a
similar naming convention.

This makes it easier when we come to create a log of all emails and
texts to have a consistent template name to show the user.
  • Loading branch information
thomasleese committed Oct 25, 2024
1 parent 89119ad commit bbe7614
Show file tree
Hide file tree
Showing 34 changed files with 167 additions and 177 deletions.
11 changes: 7 additions & 4 deletions app/controllers/concerns/consent_form_mailer_concern.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,15 @@ def send_consent_form_confirmation(consent_form)
mailer.confirmation_injection.deliver_later
elsif consent_form.consent_refused?
mailer.confirmation_refused.deliver_later
TextDeliveryJob.perform_later(:consent_refused, consent_form:)
TextDeliveryJob.perform_later(
:consent_confirmation_refused,
consent_form:
)
elsif consent_form.needs_triage?
mailer.confirmation_needs_triage.deliver_later
mailer.confirmation_triage.deliver_later
else
mailer.confirmation.deliver_later
TextDeliveryJob.perform_later(:consent_given, consent_form:)
mailer.confirmation_given.deliver_later
TextDeliveryJob.perform_later(:consent_confirmation_given, consent_form:)
end
end
end
19 changes: 12 additions & 7 deletions app/controllers/concerns/triage_mailer_concern.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,21 @@ def send_triage_confirmation(patient_session, consent)
elsif vaccination_at_clinic?(patient_session, consent)
TriageMailer.with(consent:, session:).vaccination_at_clinic.deliver_later
elsif consent.triage_needed?
ConsentMailer
.with(consent:, session:)
.confirmation_needs_triage
.deliver_later
ConsentMailer.with(consent:, session:).confirmation_triage.deliver_later
elsif consent.response_refused?
ConsentMailer.with(consent:, session:).confirmation_refused.deliver_later
TextDeliveryJob.perform_later(:consent_refused, consent:, session:)
TextDeliveryJob.perform_later(
:consent_confirmation_refused,
consent:,
session:
)
else
ConsentMailer.with(consent:, session:).confirmation.deliver_later
TextDeliveryJob.perform_later(:consent_given, consent:, session:)
ConsentMailer.with(consent:, session:).confirmation_given.deliver_later
TextDeliveryJob.perform_later(
:consent_confirmation_given,
consent:,
session:
)
end
end

Expand Down
11 changes: 3 additions & 8 deletions app/controllers/concerns/vaccination_mailer_concern.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,12 @@ def send_vaccination_confirmation(vaccination_record)

mailer_action =
if vaccination_record.administered?
:hpv_vaccination_has_taken_place
:confirmation_administered
else
:hpv_vaccination_has_not_taken_place
:confirmation_not_administered
end

text_template_name =
if vaccination_record.administered?
:vaccination_has_taken_place
else
:vaccination_didnt_happen
end
text_template_name = :"vaccination_#{mailer_action}"

patient_session.consents_to_send_communication.each do |consent|
params = { consent:, vaccination_record: }
Expand Down
2 changes: 1 addition & 1 deletion app/jobs/school_consent_reminders_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def perform
:programmes,
patients: %i[consents consent_notifications parents]
)
.joins(:location)
.eager_load(:location)
.merge(Location.school)
.strict_loading

Expand Down
2 changes: 1 addition & 1 deletion app/jobs/school_consent_requests_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def perform
Session
.send_consent_requests
.includes(:programmes, patients: %i[consents consent_notifications])
.joins(:location)
.eager_load(:location)
.merge(Location.school)
.strict_loading

Expand Down
2 changes: 1 addition & 1 deletion app/jobs/school_session_reminders_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ def perform
:triages,
:vaccination_records
)
.joins(:location, :session)
.eager_load(:location, :session)
.merge(Location.school)
.merge(Session.has_date(date))
.notification_not_sent(date)
Expand Down
28 changes: 14 additions & 14 deletions app/mailers/consent_mailer.rb
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
# frozen_string_literal: true

class ConsentMailer < ApplicationMailer
def confirmation
app_template_mail(:parental_consent_confirmation)
def confirmation_given
app_template_mail(:consent_confirmation_given)
end

def confirmation_needs_triage
app_template_mail(:parental_consent_confirmation_needs_triage)
def confirmation_triage
app_template_mail(:consent_confirmation_triage)
end

def confirmation_injection
app_template_mail(:parental_consent_confirmation_injection)
app_template_mail(:consent_confirmation_injection)
end

def confirmation_refused
app_template_mail(:parental_consent_confirmation_refused)
app_template_mail(:consent_confirmation_refused)
end

def request_for_school
app_template_mail(:hpv_session_consent_request_for_school)
def school_request
app_template_mail(:consent_school_request)
end

def request_for_clinic
app_template_mail(:hpv_session_consent_request_for_clinic)
def school_initial_reminder
app_template_mail(:consent_school_initial_reminder)
end

def initial_reminder
app_template_mail(:hpv_session_consent_reminder)
def school_subsequent_reminder
app_template_mail(:consent_school_subsequent_reminder)
end

def subsequent_reminder
app_template_mail(:hpv_session_consent_reminder_subsequent)
def clinic_request
app_template_mail(:consent_clinic_request)
end
end
6 changes: 3 additions & 3 deletions app/mailers/session_mailer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

class SessionMailer < ApplicationMailer
def school_reminder
app_template_mail(:hpv_school_session_reminder)
app_template_mail(:session_school_reminder)
end

def clinic_initial_invitation
app_template_mail(:hpv_clinic_invitation)
app_template_mail(:session_clinic_initial_invitation)
end

def clinic_subsequent_invitation
app_template_mail(:hpv_clinic_invitation_subsequent)
app_template_mail(:session_clinic_subsequent_invitation)
end
end
8 changes: 4 additions & 4 deletions app/mailers/vaccination_mailer.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# frozen_string_literal: true

class VaccinationMailer < ApplicationMailer
def hpv_vaccination_has_taken_place
app_template_mail(:confirmation_the_hpv_vaccination_has_taken_place)
def confirmation_administered
app_template_mail(:vaccination_confirmation_administered)
end

def hpv_vaccination_has_not_taken_place
app_template_mail(:confirmation_the_hpv_vaccination_didnt_happen)
def confirmation_not_administered
app_template_mail(:vaccination_confirmation_not_administered)
end
end
21 changes: 8 additions & 13 deletions app/models/consent_notification.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,22 +40,15 @@ def self.create_and_send!(patient:, programme:, session:, type:)

ConsentNotification.create!(programme:, patient:, type:)

mailer_action =
if type == :request
session.location.clinic? ? :request_for_clinic : :request_for_school
else
type
end
is_school = session.location.school?

mailer_action = (is_school ? :"school_#{type}" : :"clinic_#{type}")

text_template =
if type == :request
if session.location.clinic?
:consent_request_for_clinic
else
:consent_request_for_school
end
else
:consent_reminder
:"consent_#{mailer_action}"
elsif is_school
:consent_school_reminder
end

patient.parents.each do |parent|
Expand All @@ -64,6 +57,8 @@ def self.create_and_send!(patient:, programme:, session:, type:)
.send(mailer_action)
.deliver_later

next if text_template.nil?

TextDeliveryJob.perform_later(
text_template,
parent:,
Expand Down
8 changes: 6 additions & 2 deletions app/models/session_notification.rb
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,19 @@ def self.create_and_send!(patient_session:, session_date:, type:)
.deliver_later

TextDeliveryJob.perform_later(
:session_reminder,
:session_school_reminder,
consent:,
patient_session:
)
end
else
patient_session.patient.parents.each do |parent|
SessionMailer.with(parent:, patient_session:).send(type).deliver_later
TextDeliveryJob.perform_later(type, parent:, patient_session:)
TextDeliveryJob.perform_later(
:"session_#{type}",
parent:,
patient_session:
)
end
end
end
Expand Down
57 changes: 26 additions & 31 deletions config/initializers/govuk_notify.rb
Original file line number Diff line number Diff line change
@@ -1,40 +1,35 @@
# frozen_string_literal: true

GOVUK_NOTIFY_EMAIL_TEMPLATES = {
confirmation_the_hpv_vaccination_didnt_happen:
"130fe52a-014a-45dd-9f53-8e65c1b8bb79",
confirmation_the_hpv_vaccination_has_taken_place:
"8a65d7b5-045c-4f26-8f76-6e593c14cb6d",
hpv_clinic_invitation: "fc99ac81-9eeb-4df8-9aa0-04f0eb48e37f",
hpv_clinic_invitation_subsequent: "eee59c1b-3af4-4ccd-8653-940887066390",
hpv_school_session_reminder: "79e131b2-7816-46d0-9c74-ae14956dd77d",
hpv_session_consent_reminder: "ceefd526-d44c-4561-b0d2-c9ef4ccaba4f",
hpv_session_consent_reminder_subsequent:
"6410145f-dac1-46ba-82f3-a49cad0f66a6",
hpv_session_consent_request_for_school:
"6aa04f0d-94c2-4a6b-af97-a7369a12f681",
hpv_session_consent_request_for_clinic:
"14e88a09-4281-4257-9574-6afeaeb42715",
parental_consent_confirmation: "7cda7ae5-99a2-4c40-9a3e-1863e23f7a73",
parental_consent_confirmation_injection:
"4d09483a-8181-4acb-8ba3-7abd6c8644cd",
parental_consent_confirmation_needs_triage:
"604ee667-c996-471e-b986-79ab98d0767c",
parental_consent_confirmation_refused: "5a676dac-3385-49e4-98c2-fc6b45b5a851",
consent_clinic_request: "14e88a09-4281-4257-9574-6afeaeb42715",
consent_confirmation_given: "7cda7ae5-99a2-4c40-9a3e-1863e23f7a73",
consent_confirmation_injection: "4d09483a-8181-4acb-8ba3-7abd6c8644cd",
consent_confirmation_refused: "5a676dac-3385-49e4-98c2-fc6b45b5a851",
consent_confirmation_triage: "604ee667-c996-471e-b986-79ab98d0767c",
consent_school_initial_reminder: "ceefd526-d44c-4561-b0d2-c9ef4ccaba4f",
consent_school_request: "6aa04f0d-94c2-4a6b-af97-a7369a12f681",
consent_school_subsequent_reminder: "6410145f-dac1-46ba-82f3-a49cad0f66a6",
session_clinic_initial_invitation: "fc99ac81-9eeb-4df8-9aa0-04f0eb48e37f",
session_clinic_subsequent_invitation: "eee59c1b-3af4-4ccd-8653-940887066390",
session_school_reminder: "79e131b2-7816-46d0-9c74-ae14956dd77d",
triage_vaccination_at_clinic: "9faef718-bd76-4c30-93ea-fbe8584388a6",
triage_vaccination_will_happen: "fa3c8dd5-4688-4b93-960a-1d422c4e5597",
triage_vaccination_wont_happen: "d1faf47e-ccc3-4481-975b-1ec34211a21f"
triage_vaccination_wont_happen: "d1faf47e-ccc3-4481-975b-1ec34211a21f",
vaccination_confirmation_administered: "8a65d7b5-045c-4f26-8f76-6e593c14cb6d",
vaccination_confirmation_not_administered:
"130fe52a-014a-45dd-9f53-8e65c1b8bb79"
}.freeze

GOVUK_NOTIFY_TEXT_TEMPLATES = {
clinic_initial_invitation: "8ef5712f-bb7f-4911-8f3b-19df6f8a7179",
clinic_subsequent_invitation: "018f146d-e7b7-4b63-ae26-bb07ca6fe2f9",
consent_given: "25473aa7-2d7c-4d1d-b0c6-2ac492f737c3",
consent_refused: "eb34f3ab-0c58-4e56-b6b1-2c179270dfc3",
consent_reminder: "ee3d36b1-4682-4eb0-a74a-7e0f6c9d0598",
consent_request_for_clinic: "c7bd8150-d09e-4607-817d-db75c9a6a966",
consent_request_for_school: "03a0d572-ca5b-417e-87c3-838872a9eabc",
school_session_reminder: "6e4c514d-fcc9-4bc8-b7eb-e222a1445681",
vaccination_didnt_happen: "aae061e0-b847-4d4c-a87a-12508f95a302",
vaccination_has_taken_place: "69612d3a-d6eb-4f04-8b99-ed14212e7245"
consent_clinic_request: "03a0d572-ca5b-417e-87c3-838872a9eabc",
consent_confirmation_given: "25473aa7-2d7c-4d1d-b0c6-2ac492f737c3",
consent_confirmation_refused: "eb34f3ab-0c58-4e56-b6b1-2c179270dfc3",
consent_school_reminder: "ee3d36b1-4682-4eb0-a74a-7e0f6c9d0598",
consent_school_request: "c7bd8150-d09e-4607-817d-db75c9a6a966",
session_clinic_initial_invitation: "8ef5712f-bb7f-4911-8f3b-19df6f8a7179",
session_clinic_subsequent_invitation: "018f146d-e7b7-4b63-ae26-bb07ca6fe2f9",
session_school_reminder: "6e4c514d-fcc9-4bc8-b7eb-e222a1445681",
vaccination_confirmation_administered: "69612d3a-d6eb-4f04-8b99-ed14212e7245",
vaccination_confirmation_not_administered:
"aae061e0-b847-4d4c-a87a-12508f95a302"
}.freeze
8 changes: 4 additions & 4 deletions spec/controllers/concerns/consent_form_mailer_concern_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@
it "sends a confirmation email" do
expect { send_consent_form_confirmation }.to have_enqueued_mail(
ConsentMailer,
:confirmation
:confirmation_given
).with(params: { consent_form: }, args: [])
end

it "sends a consent given text" do
expect { send_consent_form_confirmation }.to have_enqueued_text(
:consent_given
:consent_confirmation_given
).with(consent_form:)
end

Expand Down Expand Up @@ -50,7 +50,7 @@

it "sends a consent refused text" do
expect { send_consent_form_confirmation }.to have_enqueued_text(
:consent_refused
:consent_confirmation_refused
).with(consent_form:)
end
end
Expand All @@ -61,7 +61,7 @@
it "sends an confirmation needs triage email" do
expect { send_consent_form_confirmation }.to have_enqueued_mail(
ConsentMailer,
:confirmation_needs_triage
:confirmation_triage
).with(params: { consent_form: }, args: [])
end

Expand Down
8 changes: 4 additions & 4 deletions spec/controllers/concerns/triage_mailer_concern_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,13 @@
it "sends an email saying vaccination will happen" do
expect { send_triage_confirmation }.to have_enqueued_mail(
ConsentMailer,
:confirmation
:confirmation_given
).with(params: { consent:, session: }, args: [])
end

it "sends a text message" do
expect { send_triage_confirmation }.to have_enqueued_text(
:consent_given
:consent_confirmation_given
).with(consent:, session:)
end
end
Expand All @@ -87,7 +87,7 @@
it "sends an email saying triage is required" do
expect { send_triage_confirmation }.to have_enqueued_mail(
ConsentMailer,
:confirmation_needs_triage
:confirmation_triage
).with(params: { consent:, session: }, args: [])
end

Expand All @@ -108,7 +108,7 @@

it "sends a text message" do
expect { send_triage_confirmation }.to have_enqueued_text(
:consent_refused
:consent_confirmation_refused
).with(consent:, session:)
end
end
Expand Down
Loading

0 comments on commit bbe7614

Please sign in to comment.