VRFS-4730 and VRFS-4732 - notifications of user activity
This commit is contained in:
parent
eac7a77ff7
commit
35a1fd07fa
|
|
@ -775,7 +775,32 @@ module JamRuby
|
||||||
|
|
||||||
if lesson_session.errors.any?
|
if lesson_session.errors.any?
|
||||||
puts "Lesson Session errors #{lesson_session.errors.inspect}"
|
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
|
end
|
||||||
|
|
||||||
lesson_session
|
lesson_session
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -328,16 +328,38 @@ module JamRuby
|
||||||
onboarding_email_5_sent_at_changed? ||
|
onboarding_email_5_sent_at_changed? ||
|
||||||
first_onboarding_free_lesson_at_changed? ||
|
first_onboarding_free_lesson_at_changed? ||
|
||||||
first_onboarding_paid_lesson_at_changed? ||
|
first_onboarding_paid_lesson_at_changed? ||
|
||||||
second_onboarding_free_lesson_at? ||
|
second_onboarding_free_lesson_at_changed? ||
|
||||||
onboarding_onboarded_at
|
onboarding_onboarded_at_changed?
|
||||||
|
|
||||||
updates = {onboarding_status: self.computed_onboarding_status}
|
updates = {onboarding_status: self.computed_onboarding_status}
|
||||||
|
|
||||||
if onboarder_id_changed? && onboarder_id
|
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',
|
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
|
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
|
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?
|
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_flesson] = false
|
||||||
updates[:stuck_take_2nd_flesson] = false
|
updates[:stuck_take_2nd_flesson] = false
|
||||||
|
|
|
||||||
|
|
@ -934,11 +934,15 @@ describe User do
|
||||||
describe "onboarding_status" do
|
describe "onboarding_status" do
|
||||||
let(:user) {FactoryGirl.create(:user)}
|
let(:user) {FactoryGirl.create(:user)}
|
||||||
|
|
||||||
|
before(:each) {UserMailer.deliveries.clear}
|
||||||
|
|
||||||
it "onboarded" do
|
it "onboarded" do
|
||||||
user.send_onboarding_survey.should be_false
|
user.send_onboarding_survey.should be_false
|
||||||
user.onboarding_onboarded_at = Time.now
|
user.onboarding_onboarded_at = Time.now
|
||||||
user.save!
|
user.save!
|
||||||
|
user.reload
|
||||||
user.send_onboarding_survey.should be_true
|
user.send_onboarding_survey.should be_true
|
||||||
|
UserMailer.deliveries.count.should eql 1
|
||||||
user.onboarding_status = User::ONBOARDING_STATUS_ONBOARDED
|
user.onboarding_status = User::ONBOARDING_STATUS_ONBOARDED
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -946,7 +950,9 @@ describe User do
|
||||||
user.send_onboarding_survey.should be_false
|
user.send_onboarding_survey.should be_false
|
||||||
user.onboarding_lost_reason = User::LOST_REASON_NO_VIDEO_STREAM
|
user.onboarding_lost_reason = User::LOST_REASON_NO_VIDEO_STREAM
|
||||||
user.save!
|
user.save!
|
||||||
|
user.reload
|
||||||
user.send_onboarding_survey.should be_true
|
user.send_onboarding_survey.should be_true
|
||||||
|
UserMailer.deliveries.count.should eql 0
|
||||||
user.onboarding_status = User::ONBOARDING_STATUS_LOST
|
user.onboarding_status = User::ONBOARDING_STATUS_LOST
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -954,7 +960,9 @@ describe User do
|
||||||
user.send_onboarding_survey.should be_false
|
user.send_onboarding_survey.should be_false
|
||||||
user.onboarding_escalation_reason = User::ESCALATION_REASON_NO_VIDEO_STREAM
|
user.onboarding_escalation_reason = User::ESCALATION_REASON_NO_VIDEO_STREAM
|
||||||
user.save!
|
user.save!
|
||||||
|
user.reload
|
||||||
user.send_onboarding_survey.should be_true
|
user.send_onboarding_survey.should be_true
|
||||||
|
UserMailer.deliveries.count.should eql 0
|
||||||
user.onboarding_status = User::ONBOARDING_STATUS_ESCALATED
|
user.onboarding_status = User::ONBOARDING_STATUS_ESCALATED
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -962,7 +970,9 @@ describe User do
|
||||||
user.send_onboarding_survey.should be_false
|
user.send_onboarding_survey.should be_false
|
||||||
user.first_onboarding_free_lesson_at = Time.now
|
user.first_onboarding_free_lesson_at = Time.now
|
||||||
user.save!
|
user.save!
|
||||||
|
user.reload
|
||||||
user.send_onboarding_survey.should be_false
|
user.send_onboarding_survey.should be_false
|
||||||
|
UserMailer.deliveries.count.should eql 0
|
||||||
user.onboarding_status = User::ONBOARDING_STATUS_FREE_LESSON
|
user.onboarding_status = User::ONBOARDING_STATUS_FREE_LESSON
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -970,7 +980,9 @@ describe User do
|
||||||
user.send_onboarding_survey.should be_false
|
user.send_onboarding_survey.should be_false
|
||||||
user.first_onboarding_paid_lesson_at = Time.now
|
user.first_onboarding_paid_lesson_at = Time.now
|
||||||
user.save!
|
user.save!
|
||||||
|
user.reload
|
||||||
user.send_onboarding_survey.should be_false
|
user.send_onboarding_survey.should be_false
|
||||||
|
UserMailer.deliveries.count.should eql 0
|
||||||
user.onboarding_status = User::ONBOARDING_STATUS_PAID_LESSON
|
user.onboarding_status = User::ONBOARDING_STATUS_PAID_LESSON
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -978,7 +990,9 @@ describe User do
|
||||||
user.send_onboarding_survey.should be_false
|
user.send_onboarding_survey.should be_false
|
||||||
user.onboarder = FactoryGirl.create(:user, is_onboarder:true)
|
user.onboarder = FactoryGirl.create(:user, is_onboarder:true)
|
||||||
user.save!
|
user.save!
|
||||||
|
user.reload
|
||||||
user.send_onboarding_survey.should be_false
|
user.send_onboarding_survey.should be_false
|
||||||
|
UserMailer.deliveries.count.should eql 1
|
||||||
user.onboarding_status = User::ONBOARDING_STATUS_ASSIGNED
|
user.onboarding_status = User::ONBOARDING_STATUS_ASSIGNED
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,10 @@ def app_config
|
||||||
'alerts@jamkazam.com'
|
'alerts@jamkazam.com'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def email_support_alias
|
||||||
|
'support@jamkazam.com'
|
||||||
|
end
|
||||||
|
|
||||||
def email_jamclass_alerts_alias
|
def email_jamclass_alerts_alias
|
||||||
'jamclass-alerts@jamkazam.com'
|
'jamclass-alerts@jamkazam.com'
|
||||||
end
|
end
|
||||||
|
|
@ -27,6 +31,10 @@ def app_config
|
||||||
'clientcrash@jamkazam.com'
|
'clientcrash@jamkazam.com'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def email_support_alias
|
||||||
|
'support-dev@jamkazam.com'
|
||||||
|
end
|
||||||
|
|
||||||
def email_recurly_notice
|
def email_recurly_notice
|
||||||
'recurly-alerts@jamkazam.com'
|
'recurly-alerts@jamkazam.com'
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -248,6 +248,7 @@ if defined?(Bundler)
|
||||||
config.estimated_slow_mixdown_time = 80
|
config.estimated_slow_mixdown_time = 80
|
||||||
config.num_packaging_nodes = 2
|
config.num_packaging_nodes = 2
|
||||||
|
|
||||||
|
config.email_support_alias = 'support@jamkazam.com'
|
||||||
config.email_partners_alias = 'partners@jamkazam.com'
|
config.email_partners_alias = 'partners@jamkazam.com'
|
||||||
config.email_social_alias = 'social@jamkazam.com'
|
config.email_social_alias = 'social@jamkazam.com'
|
||||||
config.email_crashes_alias = 'clientcrash@jamkazam.com'
|
config.email_crashes_alias = 'clientcrash@jamkazam.com'
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,7 @@ SampleApp::Application.configure do
|
||||||
config.email_crashes_alias = ENV['ALERT_EMAIL'] || 'clientcrash-dev@jamkazam.com'
|
config.email_crashes_alias = ENV['ALERT_EMAIL'] || 'clientcrash-dev@jamkazam.com'
|
||||||
config.email_social_alias = ENV['ALERT_EMAIL'] || 'social-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_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_fraud = true
|
||||||
config.guard_against_browser_fraud = true
|
config.guard_against_browser_fraud = true
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue