Skip to content

Commit bf225b8

Browse files
authored
feat(Messages): Adds checked in message trigger (#386)
1 parent c680db0 commit bf225b8

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

app/models/message.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class Message < ApplicationRecord
3838
"questionnaire.rsvp_confirmed" => "Questionnaire Status: RSVP Confirmed",
3939
"questionnaire.rsvp_denied" => "Questionnaire Status: RSVP Denied",
4040
"questionnaire.rsvp_reminder" => "Questionnaire: RSVP Reminder",
41+
"questionnaire.checked-in" => "Questionnaire: Checked in",
4142
"user.24hr_incomplete_application" => "User: Incomplete application (24 hours later)",
4243
"bus_list.new_captain_confirmation" => "Bus List: New captain confirmation",
4344
"bus_list.notes_update" => "Bus List: Updated notes (manually triggered)"

app/models/questionnaire.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class Questionnaire < ApplicationRecord
1111
after_create :queue_triggered_email_create
1212
after_update :queue_triggered_email_update
1313
after_update :queue_triggered_email_rsvp_reminder
14+
after_update :queue_triggered_email_checked_in
1415
after_save :update_school_questionnaire_count
1516
after_destroy :update_school_questionnaire_count
1617

@@ -257,6 +258,11 @@ def queue_triggered_email_create
257258
Message.queue_for_trigger("questionnaire.#{acc_status}", user_id)
258259
end
259260

261+
def queue_triggered_email_checked_in
262+
return unless saved_change_to_checked_in_at && checked_in?
263+
Message.queue_for_trigger("questionnaire.checked-in", user_id)
264+
end
265+
260266
def queue_triggered_email_rsvp_reminder
261267
return unless saved_change_to_acc_status? && acc_status == "accepted"
262268

test/models/questionnaire_test.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,21 @@ class QuestionnaireTest < ActiveSupport::TestCase
488488
create(:questionnaire, acc_status: "pending")
489489
end
490490
end
491+
492+
should "send triggered email on checked in" do
493+
create(:message, trigger: "questionnaire.checked-in")
494+
assert_difference "enqueued_jobs.size", 1 do
495+
create(:questionnaire, checked_in_at: Time.now)
496+
end
497+
end
498+
499+
should "not send triggered email on checked out" do
500+
create(:message, trigger: "questionnaire.checked-in")
501+
questionnaire = create(:questionnaire, checked_in_at: Time.now)
502+
assert_difference "enqueued_jobs.size", 0 do
503+
questionnaire.update_attribute(:checked_in_at, nil)
504+
end
505+
end
491506
end
492507

493508
should "clean up bus-related fields when changing RSVP" do

0 commit comments

Comments
 (0)