Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
bad9e91
feat: add rsvp reminder email to trigger and automation process based…
dquach217 Aug 14, 2019
7a5958f
feat: add the rsvp reminder email to queue_reminder_email class
dquach217 Aug 14, 2019
24db223
fix: fix issue with hound
dquach217 Aug 14, 2019
0d39dca
fix: resolve issues with linting and fix conditionals
dquach217 Aug 14, 2019
03ffc54
fix: more linting issues
dquach217 Aug 14, 2019
7d51653
fix: more more linting issues
dquach217 Aug 14, 2019
dc1e3ae
seperate the two functions
dquach217 Aug 14, 2019
7c15cb0
update on per Stuart instruction, make this more automated
dquach217 Aug 20, 2019
f368c59
forgot to commit this
dquach217 Aug 20, 2019
2581fb1
remove this unnecessary piece of code
dquach217 Aug 20, 2019
54f2033
fix linting issues
dquach217 Aug 20, 2019
edf5390
remove since we are not using this
dquach217 Aug 25, 2019
9e1920f
Update app/models/user.rb
dquach217 Aug 25, 2019
0ada7e2
forgot to add end
dquach217 Aug 25, 2019
d2428d9
Merge branch 'issue_18' of https://github.com/codeRIT/hackathon_manag…
dquach217 Aug 25, 2019
2393014
resolve for hound
dquach217 Aug 25, 2019
74a40ad
fix(dashboard): Fixes security vulnerability that allowed event_track…
cbaudouinjr May 16, 2020
95da03b
chore(release): 1.22.3 [skip ci]
semantic-release-bot May 16, 2020
444584b
build(deps): Upgrade yarn (#212)
cbaudouinjr May 19, 2020
f76e507
Merge branch 'master' into issue_18
cbaudouinjr May 20, 2020
fcecad1
fix: Fixes date issue with RSVP reminder job
cbaudouinjr Aug 1, 2020
dd89955
Merge branch '2.0' into issue_18
cbaudouinjr Aug 1, 2020
6b6b95f
fix: Fixes bug where message would not send
cbaudouinjr Aug 1, 2020
4866d72
refactor: Change subject of RSVP reminder
cbaudouinjr Aug 2, 2020
9bc3008
refactor: Verbage changes, updated reminder message
cbaudouinjr Aug 2, 2020
11bc626
Merge branch '2.0' into issue_18
cbaudouinjr Sep 16, 2020
4f0c919
2.0: Removes SparkPost mentions for 2.0
cbaudouinjr Sep 16, 2020
9689fb5
Merge branch '2.0' into issue_18
dquach217 Sep 16, 2020
8e91588
Merge branch '2.0' into issue_18
cbaudouinjr Sep 20, 2020
e117c6e
fix: Fixes timezone issues
cbaudouinjr Sep 20, 2020
e4b8d4a
Merge branch '2.0' into issue_18
cbaudouinjr Sep 20, 2020
b874c21
fix: More timezone issues
cbaudouinjr Sep 20, 2020
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
9 changes: 8 additions & 1 deletion app/mailers/user_mailer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,15 @@ def bulk_message_email(message_id, user_id, message = nil, use_examples = false)

def incomplete_reminder_email(user_id)
@user = User.find_by_id(user_id)
return if @user.blank? || @user.admin? || @user.questionnaire || Time.now.to_date > Date.parse(HackathonConfig["last_day_to_apply"])
return if @user.blank? || @user.admin? || @user.questionnaire || Time.now.in_time_zone.to_date > Date.parse(HackathonConfig["last_day_to_apply"]).in_time_zone.to_date

Message.queue_for_trigger("user.24hr_incomplete_application", @user.id)
end

def rsvp_reminder_email(user_id)
@user = User.find_by_id(user_id)
return if @user.blank? || !@user.questionnaire.acc_status == "accepted" || Time.now.in_time_zone.to_date > Date.parse(HackathonConfig["event_start_date"]).in_time_zone.to_date

Message.queue_for_trigger("questionnaire.rsvp_reminder", @user.id)
end
end
1 change: 1 addition & 0 deletions app/models/message.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ class Message < ApplicationRecord
"questionnaire.late_waitlist" => "Questionnaire Status: Waitlisted, Late",
"questionnaire.rsvp_confirmed" => "Questionnaire Status: RSVP Confirmed",
"questionnaire.rsvp_denied" => "Questionnaire Status: RSVP Denied",
"questionnaire.rsvp_reminder" => "Questionnaire: RSVP Reminder",
"user.24hr_incomplete_application" => "User: Incomplete application (24 hours later)",
"bus_list.new_captain_confirmation" => "Bus List: New captain confirmation",
"bus_list.notes_update" => "Bus List: Updated notes (manually triggered)"
Expand Down
15 changes: 15 additions & 0 deletions app/models/questionnaire.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class Questionnaire < ApplicationRecord
before_validation :clean_negative_dietary_restrictions
after_create :queue_triggered_email_create
after_update :queue_triggered_email_update
after_update :queue_triggered_email_rsvp_reminder
after_save :update_school_questionnaire_count
after_destroy :update_school_questionnaire_count

Expand Down Expand Up @@ -249,4 +250,18 @@ def queue_triggered_email_update
def queue_triggered_email_create
Message.queue_for_trigger("questionnaire.#{acc_status}", user_id)
end

def queue_triggered_email_rsvp_reminder
if saved_change_to_acc_status? && acc_status == "accepted"
days_remaining = Date.parse(HackathonConfig["event_start_date"]).in_time_zone.to_date - Time.now.in_time_zone.to_date
if days_remaining > 14
deliver_date = 7.days.from_now
elsif days_remaining > 10
deliver_date = 5.days.from_now
elsif days_remaining > 3
deliver_date = 2.days.from_now
end
UserMailer.rsvp_reminder_email(user_id).deliver_later(wait_until: deliver_date) if deliver_date.present?
end
end
end
12 changes: 12 additions & 0 deletions db/seed_messages/questionnaire--rsvp_reminder.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
## Missing RSVP

<div style="text-align: center;">
<h1>Are you coming to {{hackathon_name}}?</h1>
<h3>Let us know if we should expect you there!</h3>
<p>
<a href="{{accept_rsvp_url}}" class="button" target="_blank">Yes, I will Attend &raquo;</a>
<a href="{{deny_rsvp_url}}" class="button" target="_blank">No, I Can't Attend &raquo;</a>
<br>
<small><i>Link not working? Go to <a href="{{rsvp_url}}">{{rsvp_url}}</a></i></small>
</p>
</div>
2 changes: 2 additions & 0 deletions db/seeds.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"questionnaire.accepted" => "You've been accepted!",
"questionnaire.denied" => "Your application status",
"questionnaire.rsvp_confirmed" => "RSVP Confirmation",
"questionnaire.rsvp_reminder" => "Are you coming to #{HackathonConfig['name']}?",
"user.24hr_incomplete_application" => "Incomplete application",
"bus_list.new_captain_confirmation" => "You're a bus captain!",
"bus_list.update_notes" => "Bus Update"
Expand All @@ -25,6 +26,7 @@
"questionnaire.accepted" => "Accepted email",
"questionnaire.denied" => "Denied email",
"questionnaire.rsvp_confirmed" => "RSVP confirmed email",
"questionnaire.rsvp_reminder" => "RSVP Reminder",
"user.24hr_incomplete_application" => "Incomplete application (24-hour reminder)",
"bus_list.new_captain_confirmation" => "New bus captain confirmation",
"bus_list.update_notes" => "Bus list update"
Expand Down
13 changes: 13 additions & 0 deletions test/controllers/user_mailer_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,19 @@ class UserMailerTest < ActionMailer::TestCase
end
end

context "upon scheduled rsvp reminder email" do
setup do
@user = create(:user, email: "test@example.com")
@message = create(:message, subject: "Are you coming to HackFoo?", type: "automated", trigger: "questionnaire.rsvp_reminder_email")

should "queue reminder bulk message" do
assert_difference "enqueued_jobs.size", 1 do
UserMailer.rsvp_reminder_email(@user.id).deliver_later
end
end
end
end

context "with customized HackathonConfig" do
setup do
@user = create(:user, email: "test@example.com")
Expand Down
Binary file added vendor/cache/puma-4.3.4.gem
Binary file not shown.