Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Re-organise GOV.UK Notify templates #2168

Merged
merged 1 commit into from
Oct 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
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
8 changes: 4 additions & 4 deletions spec/controllers/concerns/vaccination_mailer_concern_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@
it "sends an email" do
expect { send_vaccination_confirmation }.to have_enqueued_mail(
VaccinationMailer,
:hpv_vaccination_has_taken_place
:confirmation_administered
).with(params: { consent:, vaccination_record: }, args: [])
end

it "sends a text message" do
expect { send_vaccination_confirmation }.to have_enqueued_text(
:vaccination_has_taken_place
:vaccination_confirmation_administered
).with(consent:, vaccination_record:)
end
end
Expand All @@ -46,13 +46,13 @@
it "sends an email" do
expect { send_vaccination_confirmation }.to have_enqueued_mail(
VaccinationMailer,
:hpv_vaccination_has_not_taken_place
:confirmation_not_administered
).with(params: { consent:, vaccination_record: }, args: [])
end

it "sends a text message" do
expect { send_vaccination_confirmation }.to have_enqueued_text(
:vaccination_didnt_happen
:vaccination_confirmation_not_administered
).with(consent:, vaccination_record:)
end
end
Expand Down
Loading
Loading