diff --git a/ruby/lib/jam_ruby/app/mailers/user_mailer.rb b/ruby/lib/jam_ruby/app/mailers/user_mailer.rb index 22a66b54e..6a5d5ec92 100644 --- a/ruby/lib/jam_ruby/app/mailers/user_mailer.rb +++ b/ruby/lib/jam_ruby/app/mailers/user_mailer.rb @@ -218,31 +218,176 @@ end end - def scheduled_session_invitation(email, msg, session_id) + def scheduled_session_invitation(email, msg, session) + subject = "Session Invitation" + unique_args = {:type => "scheduled_session_invitation"} + @body = msg + @session_name = session.description + @session_date = session.scheduled_start + @session_url = "#{APP_CONFIG.external_root_url}/sessions/#{session.id}/details" + sendgrid_category "Notification" + sendgrid_unique_args :type => unique_args[:type] + + sendgrid_recipients([email]) + sendgrid_substitute('@USERID', [User.id_for_email(email)]) + + mail(:to => email, :subject => subject) do |format| + format.text + format.html + end end - def scheduled_session_rsvp(email, msg) + def scheduled_session_rsvp(email, msg, session) + subject = "Session RSVP" + unique_args = {:type => "scheduled_session_rsvp"} + @body = msg + @session_name = session.description + @session_date = session.scheduled_start + @session_url = "#{APP_CONFIG.external_root_url}/sessions/#{session.id}/details" + sendgrid_category "Notification" + sendgrid_unique_args :type => unique_args[:type] + + sendgrid_recipients([email]) + sendgrid_substitute('@USERID', [User.id_for_email(email)]) + + mail(:to => email, :subject => subject) do |format| + format.text + format.html + end end - def scheduled_session_rsvp_approved(email, msg) + def scheduled_session_rsvp_approved(email, msg, session) + subject = "Session RSVP Approved" + unique_args = {:type => "scheduled_session_rsvp_approved"} + @body = msg + @session_name = session.description + @session_date = session.scheduled_start + @session_url = "#{APP_CONFIG.external_root_url}/sessions/#{session.id}/details" + sendgrid_category "Notification" + sendgrid_unique_args :type => unique_args[:type] + + sendgrid_recipients([email]) + sendgrid_substitute('@USERID', [User.id_for_email(email)]) + + mail(:to => email, :subject => subject) do |format| + format.text + format.html + end end - def scheduled_session_rsvp_cancelled(email, msg) + def scheduled_session_rsvp_cancelled(email, msg, session) + subject = "Session RSVP Cancelled" + unique_args = {:type => "scheduled_session_rsvp_cancelled"} + @body = msg + @session_name = session.description + @session_date = session.scheduled_start + @session_url = "#{APP_CONFIG.external_root_url}/sessions/#{session.id}/details" + sendgrid_category "Notification" + sendgrid_unique_args :type => unique_args[:type] + + sendgrid_recipients([email]) + sendgrid_substitute('@USERID', [User.id_for_email(email)]) + + mail(:to => email, :subject => subject) do |format| + format.text + format.html + end end - def scheduled_session_rsvp_cancelled_org(email, msg) + def scheduled_session_rsvp_cancelled_org(email, msg, session) + subject = "Your Session RSVP Cancelled" + unique_args = {:type => "scheduled_session_rsvp_cancelled_org"} + @body = msg + @session_name = session.description + @session_date = session.scheduled_start + @session_url = "#{APP_CONFIG.external_root_url}/sessions/#{session.id}/details" + sendgrid_category "Notification" + sendgrid_unique_args :type => unique_args[:type] + + sendgrid_recipients([email]) + sendgrid_substitute('@USERID', [User.id_for_email(email)]) + + mail(:to => email, :subject => subject) do |format| + format.text + format.html + end end - def scheduled_session_cancelled(email, msg) + def scheduled_session_cancelled(email, msg, session) + subject = "Session Cancelled" + unique_args = {:type => "scheduled_session_cancelled"} + @body = msg + @session_name = session.description + @session_date = session.scheduled_start + @session_url = "#{APP_CONFIG.external_root_url}/sessions/#{session.id}/details" + sendgrid_category "Notification" + sendgrid_unique_args :type => unique_args[:type] + + sendgrid_recipients([email]) + sendgrid_substitute('@USERID', [User.id_for_email(email)]) + + mail(:to => email, :subject => subject) do |format| + format.text + format.html + end end - def scheduled_session_rescheduled(email, msg) + def scheduled_session_rescheduled(email, msg, session) + subject = "Session Rescheduled" + unique_args = {:type => "scheduled_session_rescheduled"} + @body = msg + @session_name = session.description + @session_date = session.scheduled_start + @session_url = "#{APP_CONFIG.external_root_url}/sessions/#{session.id}/details" + sendgrid_category "Notification" + sendgrid_unique_args :type => unique_args[:type] + + sendgrid_recipients([email]) + sendgrid_substitute('@USERID', [User.id_for_email(email)]) + + mail(:to => email, :subject => subject) do |format| + format.text + format.html + end end - def scheduled_session_reminder(email, msg) + def scheduled_session_reminder(email, msg, session) + subject = "Session Rescheduled" + unique_args = {:type => "scheduled_session_reminder"} + @body = msg + @session_name = session.description + @session_date = session.scheduled_start + @session_url = "#{APP_CONFIG.external_root_url}/sessions/#{session.id}/details" + sendgrid_category "Notification" + sendgrid_unique_args :type => unique_args[:type] + + sendgrid_recipients([email]) + sendgrid_substitute('@USERID', [User.id_for_email(email)]) + + mail(:to => email, :subject => subject) do |format| + format.text + format.html + end end - def scheduled_session_comment(email, msg) + def scheduled_session_comment(email, msg, comment, session) + subject = "New Session Comment" + unique_args = {:type => "scheduled_session_comment"} + @body = msg + @session_name = session.description + @session_date = session.scheduled_start + @comment = comment + @session_url = "#{APP_CONFIG.external_root_url}/sessions/#{session.id}/details" + sendgrid_category "Notification" + sendgrid_unique_args :type => unique_args[:type] + + sendgrid_recipients([email]) + sendgrid_substitute('@USERID', [User.id_for_email(email)]) + + mail(:to => email, :subject => subject) do |format| + format.text + format.html + end end def band_session_join(email, msg, session_id) diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_cancelled.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_cancelled.html.erb index e69de29bb..d0ff59dc2 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_cancelled.html.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_cancelled.html.erb @@ -0,0 +1,5 @@ +<% provide(:title, 'Scheduled Session Cancelled') %> + +

<%= @body %>

+ +

View Session Details

\ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_cancelled.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_cancelled.text.erb index e69de29bb..40ec73f65 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_cancelled.text.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_cancelled.text.erb @@ -0,0 +1,6 @@ +<%= @body %> + +<%= @session_name %> +<%= @session_date %> + +See session details at <%= @session_url %>. \ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_comment.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_comment.html.erb index e69de29bb..7ebe56c8f 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_comment.html.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_comment.html.erb @@ -0,0 +1,7 @@ +<% provide(:title, 'Scheduled Session Comment') %> + +

<%= @body %>

+ +

<%= @comment %>

+ +

View Session Details

\ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_comment.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_comment.text.erb index e69de29bb..6a7dc5f59 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_comment.text.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_comment.text.erb @@ -0,0 +1,8 @@ +<%= @body %> + +<%= @session_name %> +<%= @session_date %> + +<%= @comment %> + +See session details at <%= @session_url %>. \ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_invitation.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_invitation.html.erb index e69de29bb..7e62e683a 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_invitation.html.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_invitation.html.erb @@ -0,0 +1,10 @@ +<% provide(:title, 'Scheduled Session Invitation') %> + +

<%= @body %>

+ +

+ <%= @session_name %>
+ <%= @session_date %> +

+ +

View Session Details

\ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_invitation.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_invitation.text.erb index e69de29bb..40ec73f65 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_invitation.text.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_invitation.text.erb @@ -0,0 +1,6 @@ +<%= @body %> + +<%= @session_name %> +<%= @session_date %> + +See session details at <%= @session_url %>. \ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.html.erb index e69de29bb..1521bd74a 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.html.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.html.erb @@ -0,0 +1,10 @@ +<% provide(:title, 'Scheduled Session Reminder') %> + +

<%= @body %>

+ +

+ <%= @session_name %>
+ <%= @session_date %> +

+ +

View Session Details

\ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.text.erb index e69de29bb..40ec73f65 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.text.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.text.erb @@ -0,0 +1,6 @@ +<%= @body %> + +<%= @session_name %> +<%= @session_date %> + +See session details at <%= @session_url %>. \ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rescheduled.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rescheduled.html.erb index e69de29bb..e0e534018 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rescheduled.html.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rescheduled.html.erb @@ -0,0 +1,10 @@ +<% provide(:title, 'Scheduled Session Reschedule') %> + +

<%= @body %>

+ +

+ <%= @session_name %>
+ <%= @session_date %> +

+ +

View Session Details

\ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rescheduled.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rescheduled.text.erb index e69de29bb..40ec73f65 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rescheduled.text.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rescheduled.text.erb @@ -0,0 +1,6 @@ +<%= @body %> + +<%= @session_name %> +<%= @session_date %> + +See session details at <%= @session_url %>. \ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp.html.erb index e69de29bb..c615903a8 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp.html.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp.html.erb @@ -0,0 +1,10 @@ +<% provide(:title, 'Scheduled Session RSVP') %> + +

<%= @body %>

+ +

+ <%= @session_name %>
+ <%= @session_date %> +

+ +

View Session Details

\ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp.text.erb index e69de29bb..40ec73f65 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp.text.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp.text.erb @@ -0,0 +1,6 @@ +<%= @body %> + +<%= @session_name %> +<%= @session_date %> + +See session details at <%= @session_url %>. \ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_approved.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_approved.html.erb index e69de29bb..03305ce72 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_approved.html.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_approved.html.erb @@ -0,0 +1,10 @@ +<% provide(:title, 'Scheduled Session RSVP Approved') %> + +

<%= @body %>

+ +

+ <%= @session_name %>
+ <%= @session_date %> +

+ +

View Session Details

\ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_approved.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_approved.text.erb index e69de29bb..40ec73f65 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_approved.text.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_approved.text.erb @@ -0,0 +1,6 @@ +<%= @body %> + +<%= @session_name %> +<%= @session_date %> + +See session details at <%= @session_url %>. \ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled.html.erb index e69de29bb..b7740ea1a 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled.html.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled.html.erb @@ -0,0 +1,10 @@ +<% provide(:title, 'Scheduled Session RSVP Cancelled') %> + +

<%= @body %>

+ +

+ <%= @session_name %>
+ <%= @session_date %> +

+ +

View Session Details

\ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled.text.erb index e69de29bb..40ec73f65 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled.text.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled.text.erb @@ -0,0 +1,6 @@ +<%= @body %> + +<%= @session_name %> +<%= @session_date %> + +See session details at <%= @session_url %>. \ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled_org.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled_org.html.erb index e69de29bb..3cfa830d0 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled_org.html.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled_org.html.erb @@ -0,0 +1,10 @@ +<% provide(:title, 'Scheduled Session RSVP Cancelled By Organizer') %> + +

<%= @body %>

+ +

+ <%= @session_name %>
+ <%= @session_date %> +

+ +

View Session Details

\ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled_org.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled_org.text.erb index e69de29bb..40ec73f65 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled_org.text.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_rsvp_cancelled_org.text.erb @@ -0,0 +1,6 @@ +<%= @body %> + +<%= @session_name %> +<%= @session_date %> + +See session details at <%= @session_url %>. \ No newline at end of file diff --git a/ruby/lib/jam_ruby/models/notification.rb b/ruby/lib/jam_ruby/models/notification.rb index 71677e970..4ca4f1935 100644 --- a/ruby/lib/jam_ruby/models/notification.rb +++ b/ruby/lib/jam_ruby/models/notification.rb @@ -188,19 +188,19 @@ module JamRuby return "A musician has cancelled an RSVP to your session." when NotificationTypes::SCHEDULED_SESSION_RSVP_CANCELLED_ORG - return "The session organizer has cancelled this session:" + return "The session organizer has cancelled your RSVP to this session." when NotificationTypes::SCHEDULED_SESSION_CANCELLED - return "The session organizer has cancelled this session:" + return "The session organizer has cancelled this session." when NotificationTypes::SCHEDULED_SESSION_RESCHEDULED - return "The following session has been rescheduled:" + return "The following session has been rescheduled." when NotificationTypes::SCHEDULED_SESSION_REMINDER return "A session to which you have RSVPd will begin in one hour, so get ready to play!" when NotificationTypes::SCHEDULED_SESSION_COMMENT - return "New message about session:" + return "New message about session." # recording notifications when NotificationTypes::MUSICIAN_RECORDING_SAVED @@ -589,18 +589,26 @@ module JamRuby notification_msg = format_msg(notification.description, {:user => source_user, :session => music_session}) - msg = @@message_factory.scheduled_session_invitation( - target_user.id, - music_session.id, - source_user.photo_url, - notification_msg, - music_session.description, - music_session.scheduled_start, - notification.id, - notification.created_date - ) + if target_user.online + msg = @@message_factory.scheduled_session_invitation( + target_user.id, + music_session.id, + source_user.photo_url, + notification_msg, + music_session.description, + music_session.scheduled_start, + notification.id, + notification.created_date + ) - @@mq_router.publish_to_user(target_user.id, msg) + @@mq_router.publish_to_user(target_user.id, msg) + else + begin + UserMailer.scheduled_session_invitation(target_user.email, notification_msg, music_session).deliver + rescue => e + @@log.error("Unable to send scheduled_session_invitation email to offline user #{target_user.email} #{e}") + end + end end def send_scheduled_session_rsvp(music_session, user, instruments) @@ -616,20 +624,28 @@ module JamRuby notification_msg = format_msg(notification.description, {:user => source_user, :session => music_session}) - msg = @@message_factory.scheduled_session_rsvp( - target_user.id, - music_session.id, - source_user.photo_url, - notification_msg, - source_user.id, - instruments, - music_session.description, - music_session.scheduled_start, - notification.id, - notification.created_date - ) + if target_user.online + msg = @@message_factory.scheduled_session_rsvp( + target_user.id, + music_session.id, + source_user.photo_url, + notification_msg, + source_user.id, + instruments, + music_session.description, + music_session.scheduled_start, + notification.id, + notification.created_date + ) - @@mq_router.publish_to_user(target_user.id, msg) + @@mq_router.publish_to_user(target_user.id, msg) + else + begin + UserMailer.scheduled_session_rsvp(target_user.email, notification_msg, music_session).deliver + rescue => e + @@log.error("Unable to send scheduled_session_rsvp email to offline user #{target_user.email} #{e}") + end + end end def send_scheduled_session_rsvp_approved(music_session, user) @@ -645,17 +661,25 @@ module JamRuby notification_msg = format_msg(notification.description, {:session => music_session}) - msg = @@message_factory.scheduled_session_rsvp_approved( - target_user.id, - music_session.id, - notification_msg, - music_session.description, - music_session.scheduled_start, - notification.id, - notification.created_date - ) + if target_user.online + msg = @@message_factory.scheduled_session_rsvp_approved( + target_user.id, + music_session.id, + notification_msg, + music_session.description, + music_session.scheduled_start, + notification.id, + notification.created_date + ) - @@mq_router.publish_to_user(target_user.id, msg) + @@mq_router.publish_to_user(target_user.id, msg) + else + begin + UserMailer.scheduled_session_rsvp_approved(target_user.email, notification_msg, music_session).deliver + rescue => e + @@log.error("Unable to send scheduled_session_rsvp_approved email to offline user #{target_user.email} #{e}") + end + end end def send_scheduled_session_rsvp_cancelled(music_session, user) @@ -671,17 +695,25 @@ module JamRuby notification_msg = format_msg(notification.description, {:session => music_session}) - msg = @@message_factory.scheduled_session_rsvp_cancelled( - target_user.id, - music_session.id, - notification_msg, - music_session.description, - music_session.scheduled_start, - notification.id, - notification.created_date - ) + if target_user.online + msg = @@message_factory.scheduled_session_rsvp_cancelled( + target_user.id, + music_session.id, + notification_msg, + music_session.description, + music_session.scheduled_start, + notification.id, + notification.created_date + ) - @@mq_router.publish_to_user(target_user.id, msg) + @@mq_router.publish_to_user(target_user.id, msg) + else + begin + UserMailer.send_scheduled_session_rsvp_cancelled(target_user.email, notification_msg, music_session).deliver + rescue => e + @@log.error("Unable to send send_scheduled_session_rsvp_cancelled email to offline user #{target_user.email} #{e}") + end + end end def send_scheduled_session_rsvp_cancelled_org(music_session, user) @@ -697,17 +729,25 @@ module JamRuby notification_msg = format_msg(notification.description, {:session => music_session}) - msg = @@message_factory.scheduled_session_rsvp_cancelled_org( - target_user.id, - music_session.id, - notification_msg, - music_session.description, - music_session.scheduled_start, - notification.id, - notification.created_date - ) + if target_user.online + msg = @@message_factory.scheduled_session_rsvp_cancelled_org( + target_user.id, + music_session.id, + notification_msg, + music_session.description, + music_session.scheduled_start, + notification.id, + notification.created_date + ) - @@mq_router.publish_to_user(target_user.id, msg) + @@mq_router.publish_to_user(target_user.id, msg) + else + begin + UserMailer.scheduled_session_rsvp_cancelled_org(target_user.email, notification_msg, music_session).deliver + rescue => e + @@log.error("Unable to send scheduled_session_rsvp_cancelled_org email to offline user #{target_user.email} #{e}") + end + end end def send_scheduled_session_cancelled(music_session) @@ -726,17 +766,25 @@ module JamRuby notification_msg = format_msg(notification.description, {:session => music_session}) - msg = @@message_factory.scheduled_session_cancelled( - target_user.id, - music_session.id, - notification_msg, - music_session.description, - music_session.scheduled_start, - notification.id, - notification.created_date - ) + if target_user.online + msg = @@message_factory.scheduled_session_cancelled( + target_user.id, + music_session.id, + notification_msg, + music_session.description, + music_session.scheduled_start, + notification.id, + notification.created_date + ) - @@mq_router.publish_to_user(target_user.id, msg) + @@mq_router.publish_to_user(target_user.id, msg) + else + begin + UserMailer.scheduled_session_cancelled(target_user.email, notification_msg, music_session).deliver + rescue => e + @@log.error("Unable to send scheduled_session_cancelled email to offline user #{target_user.email} #{e}") + end + end end end @@ -756,17 +804,25 @@ module JamRuby notification_msg = format_msg(notification.description, {:session => music_session}) - msg = @@message_factory.scheduled_session_rescheduled( - target_user.id, - music_session.id, - notification_msg, - music_session.description, - music_session.scheduled_start, - notification.id, - notification.created_date - ) + if target_user.online + msg = @@message_factory.scheduled_session_rescheduled( + target_user.id, + music_session.id, + notification_msg, + music_session.description, + music_session.scheduled_start, + notification.id, + notification.created_date + ) - @@mq_router.publish_to_user(target_user.id, msg) + @@mq_router.publish_to_user(target_user.id, msg) + else + begin + UserMailer.scheduled_session_rescheduled(target_user.email, notification_msg, music_session).deliver + rescue => e + @@log.error("Unable to send scheduled_session_rescheduled email to offline user #{target_user.email} #{e}") + end + end end end @@ -786,17 +842,25 @@ module JamRuby notification_msg = format_msg(notification.description, {:session => music_session}) - msg = @@message_factory.scheduled_session_reminder( - target_user.id, - music_session.id, - notification_msg, - music_session.description, - music_session.scheduled_start, - notification.id, - notification.created_date - ) + if target_user.online + msg = @@message_factory.scheduled_session_reminder( + target_user.id, + music_session.id, + notification_msg, + music_session.description, + music_session.scheduled_start, + notification.id, + notification.created_date + ) - @@mq_router.publish_to_user(target_user.id, msg) + @@mq_router.publish_to_user(target_user.id, msg) + else + begin + UserMailer.scheduled_session_reminder(target_user.email, notification_msg, music_session).deliver + rescue => e + @@log.error("Unable to send scheduled_session_reminder email to offline user #{target_user.email} #{e}") + end + end end end @@ -816,18 +880,26 @@ module JamRuby notification_msg = format_msg(notification.description, {:session => music_session}) - msg = @@message_factory.scheduled_session_comment( - target_user.id, - music_session.id, - notification_msg, - comment, - music_session.description, - music_session.scheduled_start, - notification.id, - notification.created_date - ) + if target_user.online + msg = @@message_factory.scheduled_session_comment( + target_user.id, + music_session.id, + notification_msg, + comment, + music_session.description, + music_session.scheduled_start, + notification.id, + notification.created_date + ) - @@mq_router.publish_to_user(target_user.id, msg) + @@mq_router.publish_to_user(target_user.id, msg) + else + begin + UserMailer.scheduled_session_comment(target_user.email, notification_msg, comment, music_session).deliver + rescue => e + @@log.error("Unable to send scheduled_session_comment email to offline user #{target_user.email} #{e}") + end + end end end