VRFS-4730 and VRFS-4732 - notifications of user activity

This commit is contained in:
Seth Call 2018-03-18 16:41:40 -05:00
parent eac7a77ff7
commit 35a1fd07fa
6 changed files with 74 additions and 3 deletions

View File

@ -775,7 +775,32 @@ module JamRuby
if lesson_session.errors.any?
puts "Lesson Session errors #{lesson_session.errors.inspect}"
else
begin
lesson_type = 'unknown'
if booking.is_test_drive?
if booking.student.first_onboarding_free_lesson_at
lesson_type = 'second free lesson'
else
lesson_type = 'first free lesson'
end
elsif lesson_session.slot.is_recurring?
lesson_type = 'monthly lesson'
else
lesson_type = 'single paid lesson'
end
body = "Student has requested a #{lesson_type}!\n\nUser: #{booking.student.name}, #{booking.student.email}\nUser Admin URL:#{booking.student.admin_url}\n\n"
body += "Lesson Session URL: #{lesson_session.admin_url}"
AdminMailer.ugly({to: APP_CONFIG.email_support_alias,
subject:"Student '#{booking.student.name}' requested #{lesson_type}!",
body: body}).deliver_now
rescue
puts "Unable to alert that student requested lesson"
end
end
lesson_session
end

View File

@ -328,16 +328,38 @@ module JamRuby
onboarding_email_5_sent_at_changed? ||
first_onboarding_free_lesson_at_changed? ||
first_onboarding_paid_lesson_at_changed? ||
second_onboarding_free_lesson_at? ||
onboarding_onboarded_at
second_onboarding_free_lesson_at_changed? ||
onboarding_onboarded_at_changed?
updates = {onboarding_status: self.computed_onboarding_status}
if onboarder_id_changed? && onboarder_id
AdminMailer.ugly({to: onboarder.email, cc: 'support@jamkazam.com',
begin
AdminMailer.ugly({to: onboarder.email, cc: APP_CONFIG.email_support_alias,
subject:'New student assigned to you',
body: "Hi #{onboarder.first_name},\n\nA new student has been assigned to you for onboarding. Please send the first introductory email to this student ASAP, and update the onboarding console to start tracking.\n\nNew User Email: #{email}\n\nOnboarding Management: https://www.jamkazam.com/client#/account/onboarder\n\nThanks!\n\nRegards,\nTeam JamKazam"}).deliver_now
rescue
puts "UNABLE TO INDICATE ONBOARDER ASSIGNED"
end
end
if onboarding_onboarded_at_changed? && onboarding_onboarded_at
begin
body = "A new student has been onboarded!\n\nUser: #{name}, #{email}\nUser Admin URL:#{admin_url}\n\n"
if onboarder
body += "Onboarder: #{onboarder.name}, #{onboarder.email}\nOnboarder Admin URL: #{onboarder.admin_url}\n\n"
end
body += "Onboarding Management: https://www.jamkazam.com/client#/account/onboarder\n\n"
AdminMailer.ugly({to: APP_CONFIG.email_support_alias,
subject:"Student '#{name}' successfully onboarded!",
body: body}).deliver_now
rescue
puts "UNABLE TO INDICATE ONBOARDED AT"
end
end
if first_onboarding_free_lesson_at_changed? || first_onboarding_paid_lesson_at_changed? || second_onboarding_free_lesson_at?
updates[:stuck_take_flesson] = false
updates[:stuck_take_2nd_flesson] = false

View File

@ -934,11 +934,15 @@ describe User do
describe "onboarding_status" do
let(:user) {FactoryGirl.create(:user)}
before(:each) {UserMailer.deliveries.clear}
it "onboarded" do
user.send_onboarding_survey.should be_false
user.onboarding_onboarded_at = Time.now
user.save!
user.reload
user.send_onboarding_survey.should be_true
UserMailer.deliveries.count.should eql 1
user.onboarding_status = User::ONBOARDING_STATUS_ONBOARDED
end
@ -946,7 +950,9 @@ describe User do
user.send_onboarding_survey.should be_false
user.onboarding_lost_reason = User::LOST_REASON_NO_VIDEO_STREAM
user.save!
user.reload
user.send_onboarding_survey.should be_true
UserMailer.deliveries.count.should eql 0
user.onboarding_status = User::ONBOARDING_STATUS_LOST
end
@ -954,7 +960,9 @@ describe User do
user.send_onboarding_survey.should be_false
user.onboarding_escalation_reason = User::ESCALATION_REASON_NO_VIDEO_STREAM
user.save!
user.reload
user.send_onboarding_survey.should be_true
UserMailer.deliveries.count.should eql 0
user.onboarding_status = User::ONBOARDING_STATUS_ESCALATED
end
@ -962,7 +970,9 @@ describe User do
user.send_onboarding_survey.should be_false
user.first_onboarding_free_lesson_at = Time.now
user.save!
user.reload
user.send_onboarding_survey.should be_false
UserMailer.deliveries.count.should eql 0
user.onboarding_status = User::ONBOARDING_STATUS_FREE_LESSON
end
@ -970,7 +980,9 @@ describe User do
user.send_onboarding_survey.should be_false
user.first_onboarding_paid_lesson_at = Time.now
user.save!
user.reload
user.send_onboarding_survey.should be_false
UserMailer.deliveries.count.should eql 0
user.onboarding_status = User::ONBOARDING_STATUS_PAID_LESSON
end
@ -978,7 +990,9 @@ describe User do
user.send_onboarding_survey.should be_false
user.onboarder = FactoryGirl.create(:user, is_onboarder:true)
user.save!
user.reload
user.send_onboarding_survey.should be_false
UserMailer.deliveries.count.should eql 1
user.onboarding_status = User::ONBOARDING_STATUS_ASSIGNED
end

View File

@ -19,6 +19,10 @@ def app_config
'alerts@jamkazam.com'
end
def email_support_alias
'support@jamkazam.com'
end
def email_jamclass_alerts_alias
'jamclass-alerts@jamkazam.com'
end
@ -27,6 +31,10 @@ def app_config
'clientcrash@jamkazam.com'
end
def email_support_alias
'support-dev@jamkazam.com'
end
def email_recurly_notice
'recurly-alerts@jamkazam.com'
end

View File

@ -248,6 +248,7 @@ if defined?(Bundler)
config.estimated_slow_mixdown_time = 80
config.num_packaging_nodes = 2
config.email_support_alias = 'support@jamkazam.com'
config.email_partners_alias = 'partners@jamkazam.com'
config.email_social_alias = 'social@jamkazam.com'
config.email_crashes_alias = 'clientcrash@jamkazam.com'

View File

@ -95,6 +95,7 @@ SampleApp::Application.configure do
config.email_crashes_alias = ENV['ALERT_EMAIL'] || 'clientcrash-dev@jamkazam.com'
config.email_social_alias = ENV['ALERT_EMAIL'] || 'social-dev@jamkazam.com'
config.email_partners_alias = ENV['ALERT_EMAIL'] || 'partners-dev@jamkazam.com'
config.email_support_alias = ENV['ALERT_EMAIL'] || 'support-dev@jamkazam.com'
config.guard_against_fraud = true
config.guard_against_browser_fraud = true