532 lines
17 KiB
Ruby
532 lines
17 KiB
Ruby
module JamRuby
|
|
# UserMailer must be configured to work
|
|
# Some common configs occur in jam_ruby/init.rb
|
|
# Environment specific configs occur in spec_helper.rb in jam-ruby and jam-web (to put it into test mode),
|
|
# and in config/initializers/email.rb in rails to configure sendmail account settings
|
|
# If UserMailer were to be used in another project, it would need to be configured there, as well.
|
|
|
|
# Templates for UserMailer can be found in jam_ruby/app/views/jam_ruby/user_mailer
|
|
class UserMailer < ActionMailer::Base
|
|
include SendGrid
|
|
|
|
layout "user_mailer"
|
|
|
|
DEFAULT_SENDER = "noreply@jamkazam.com"
|
|
|
|
default :from => DEFAULT_SENDER
|
|
|
|
sendgrid_category :use_subject_lines
|
|
#sendgrid_enable :opentrack, :clicktrack # this makes our emails creepy, imo (seth)
|
|
sendgrid_unique_args :env => Environment.mode
|
|
|
|
def confirm_email(user, signup_confirm_url)
|
|
@user = user
|
|
@signup_confirm_url = signup_confirm_url
|
|
sendgrid_category "Confirm Email"
|
|
sendgrid_unique_args :type => "confirm_email"
|
|
|
|
sendgrid_recipients([user.email])
|
|
sendgrid_substitute('@USERID', [user.id])
|
|
|
|
mail(:to => user.email, :subject => "Please confirm your JamKazam email") do |format|
|
|
format.text
|
|
format.html
|
|
end
|
|
end
|
|
|
|
def welcome_message(user)
|
|
@user = user
|
|
sendgrid_category "Welcome"
|
|
sendgrid_unique_args :type => "welcome_message"
|
|
|
|
sendgrid_recipients([user.email])
|
|
sendgrid_substitute('@USERID', [user.id])
|
|
sendgrid_substitute(EmailBatchProgression::VAR_FIRST_NAME, [user.first_name])
|
|
|
|
mail(:to => user.email, :subject => "Welcome to JamKazam") do |format|
|
|
format.text
|
|
format.html
|
|
end
|
|
end
|
|
|
|
def password_changed(user)
|
|
@user = user
|
|
|
|
sendgrid_recipients([user.email])
|
|
sendgrid_substitute('@USERID', [user.id])
|
|
|
|
sendgrid_unique_args :type => "password_changed"
|
|
mail(:to => user.email, :subject => "JamKazam Password Changed") do |format|
|
|
format.text
|
|
format.html
|
|
end
|
|
end
|
|
|
|
def password_reset(user, password_reset_url)
|
|
@user = user
|
|
|
|
sendgrid_recipients([user.email])
|
|
sendgrid_substitute('@USERID', [user.id])
|
|
|
|
@password_reset_url = password_reset_url
|
|
sendgrid_unique_args :type => "password_reset"
|
|
mail(:to => user.email, :subject => "JamKazam Password Reset") do |format|
|
|
format.text
|
|
format.html
|
|
end
|
|
end
|
|
|
|
def updating_email(user)
|
|
@user = user
|
|
|
|
sendgrid_recipients([user.email])
|
|
sendgrid_substitute('@USERID', [user.id])
|
|
|
|
sendgrid_unique_args :type => "updating_email"
|
|
mail(:to => user.update_email, :subject => "JamKazam Email Change Confirmation") do |format|
|
|
format.text
|
|
format.html
|
|
end
|
|
end
|
|
|
|
def updated_email(user)
|
|
@user = user
|
|
|
|
sendgrid_recipients([user.email])
|
|
sendgrid_substitute('@USERID', [user.id])
|
|
|
|
sendgrid_unique_args :type => "updated_email"
|
|
mail(:to => user.email, :subject => "JamKazam Email Changed") do |format|
|
|
format.text
|
|
format.html
|
|
end
|
|
end
|
|
|
|
def new_musicians(user, new_nearby, host='www.jamkazam.com')
|
|
@user, @new_nearby, @host = user, new_nearby, host
|
|
|
|
sendgrid_recipients([user.email])
|
|
sendgrid_substitute('@USERID', [user.id])
|
|
sendgrid_unique_args :type => "new_musicians"
|
|
|
|
mail(:to => user.email, :subject => EmailBatchNewMusician.subject) do |format|
|
|
format.text
|
|
format.html
|
|
end
|
|
end
|
|
|
|
#################################### NOTIFICATION EMAILS ####################################
|
|
def friend_request(email, msg, friend_request_id)
|
|
subject = "You have a new friend request on JamKazam"
|
|
unique_args = {:type => "friend_request"}
|
|
|
|
@url = Nav.accept_friend_request_dialog(friend_request_id)
|
|
@body = msg
|
|
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 friend_request_accepted(email, msg)
|
|
subject = "You have a new friend on JamKazam"
|
|
unique_args = {:type => "friend_request_accepted"}
|
|
|
|
@body = msg
|
|
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 new_user_follower(email, msg)
|
|
subject = "You have a new follower on JamKazam"
|
|
unique_args = {:type => "new_user_follower"}
|
|
|
|
@body = msg
|
|
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 new_band_follower(email, msg)
|
|
subject = "Your band has a new follower on JamKazam"
|
|
unique_args = {:type => "new_band_follower"}
|
|
|
|
@body = msg
|
|
sendgrid_category "Notification"
|
|
sendgrid_unique_args :type => unique_args[:type]
|
|
|
|
sendgrid_recipients([email])
|
|
sendgrid_substitute('@USERID', [User.id_for_email(email)])
|
|
|
|
mail(:bcc => email, :subject => subject) do |format|
|
|
format.text
|
|
format.html
|
|
end
|
|
end
|
|
|
|
def session_invitation(email, msg)
|
|
subject = "You have been invited to a session on JamKazam"
|
|
unique_args = {:type => "session_invitation"}
|
|
|
|
@body = msg
|
|
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 musician_session_join(email, msg, session_id)
|
|
subject = "Someone you know is in a session on JamKazam"
|
|
unique_args = {:type => "musician_session_join"}
|
|
@body = msg
|
|
@session_url = "#{APP_CONFIG.external_root_url}/sessions/#{session_id}"
|
|
sendgrid_category "Notification"
|
|
sendgrid_unique_args :type => unique_args[:type]
|
|
|
|
sendgrid_recipients([email])
|
|
sendgrid_substitute('@USERID', [User.id_for_email(email)])
|
|
|
|
mail(:bcc => email, :subject => subject) do |format|
|
|
format.text
|
|
format.html
|
|
end
|
|
end
|
|
|
|
def scheduled_session_invitation(email, msg, session)
|
|
subject = "Session Invitation"
|
|
unique_args = {:type => "scheduled_session_invitation"}
|
|
@body = msg
|
|
@session_name = session.name
|
|
@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, session)
|
|
subject = "Session RSVP"
|
|
unique_args = {:type => "scheduled_session_rsvp"}
|
|
@body = msg
|
|
@session_name = session.name
|
|
@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, session)
|
|
subject = "Session RSVP Approved"
|
|
unique_args = {:type => "scheduled_session_rsvp_approved"}
|
|
@body = msg
|
|
@session_name = session.name
|
|
@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, session)
|
|
subject = "Session RSVP Cancelled"
|
|
unique_args = {:type => "scheduled_session_rsvp_cancelled"}
|
|
@body = msg
|
|
@session_name = session.name
|
|
@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, session)
|
|
subject = "Your Session RSVP Cancelled"
|
|
unique_args = {:type => "scheduled_session_rsvp_cancelled_org"}
|
|
@body = msg
|
|
@session_name = session.name
|
|
@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, session)
|
|
subject = "Session Cancelled"
|
|
unique_args = {:type => "scheduled_session_cancelled"}
|
|
@body = msg
|
|
@session_name = session.name
|
|
@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, session)
|
|
subject = "Session Rescheduled"
|
|
unique_args = {:type => "scheduled_session_rescheduled"}
|
|
@body = msg
|
|
@session_name = session.name
|
|
@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, session)
|
|
subject = "Session Rescheduled"
|
|
unique_args = {:type => "scheduled_session_reminder"}
|
|
@body = msg
|
|
@session_name = session.name
|
|
@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, comment, session)
|
|
subject = "New Session Comment"
|
|
unique_args = {:type => "scheduled_session_comment"}
|
|
@body = msg
|
|
@session_name = session.name
|
|
@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 scheduled_session_daily(receiver, sessions)
|
|
sendgrid_category "Notification"
|
|
sendgrid_unique_args :type => "scheduled_session_daily"
|
|
|
|
sendgrid_recipients([receiver.email])
|
|
sendgrid_substitute('@USERID', [receiver.id])
|
|
|
|
@user = receiver
|
|
|
|
mail(:to => receiver.email,
|
|
:subject => EmailBatchScheduledSessions.subject,
|
|
:title => 'New Scheduled Sessions Matched to You') do |format|
|
|
format.text
|
|
format.html
|
|
end
|
|
end
|
|
|
|
def band_session_join(email, msg, session_id)
|
|
subject = "A band that you follow has joined a session"
|
|
unique_args = {:type => "band_session_join"}
|
|
|
|
@body = msg
|
|
@session_url = "#{APP_CONFIG.external_root_url}/sessions/#{session_id}"
|
|
sendgrid_category "Notification"
|
|
sendgrid_unique_args :type => unique_args[:type]
|
|
|
|
sendgrid_recipients([email])
|
|
sendgrid_substitute('@USERID', [User.id_for_email(email)])
|
|
|
|
mail(:bcc => email, :subject => subject) do |format|
|
|
format.text
|
|
format.html
|
|
end
|
|
end
|
|
|
|
def musician_recording_saved(email, msg)
|
|
subject = "A musician has saved a new recording on JamKazam"
|
|
unique_args = {:type => "musician_recording_saved"}
|
|
|
|
@body = msg
|
|
sendgrid_category "Notification"
|
|
sendgrid_unique_args :type => unique_args[:type]
|
|
|
|
sendgrid_recipients([email])
|
|
sendgrid_substitute('@USERID', [User.id_for_email(email)])
|
|
|
|
mail(:bcc => email, :subject => subject) do |format|
|
|
format.text
|
|
format.html
|
|
end
|
|
end
|
|
|
|
def band_recording_saved(email, msg)
|
|
subject = "A band has saved a new recording on JamKazam"
|
|
unique_args = {:type => "band_recording_saved"}
|
|
|
|
@body = msg
|
|
sendgrid_category "Notification"
|
|
sendgrid_unique_args :type => unique_args[:type]
|
|
|
|
sendgrid_recipients([email])
|
|
sendgrid_substitute('@USERID', [User.id_for_email(email)])
|
|
|
|
mail(:bcc => email, :subject => subject) do |format|
|
|
format.text
|
|
format.html
|
|
end
|
|
end
|
|
|
|
def band_invitation(email, msg)
|
|
subject = "You have been invited to join a band on JamKazam"
|
|
unique_args = {:type => "band_invitation"}
|
|
|
|
@body = msg
|
|
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_invitation_accepted(email, msg)
|
|
subject = "Your band invitation was accepted"
|
|
unique_args = {:type => "band_invitation_accepted"}
|
|
|
|
@body = msg
|
|
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 text_message(email, sender_id, sender_name, sender_photo_url, message)
|
|
subject = "Message from #{sender_name}"
|
|
unique_args = {:type => "text_message"}
|
|
|
|
@note = message
|
|
@url = Nav.home(dialog: 'text-message', dialog_opts: {d1: sender_id})
|
|
@sender_id = sender_id
|
|
@sender_name = sender_name
|
|
@sender_photo_url = sender_photo_url
|
|
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 { render :layout => "from_user_mailer" }
|
|
end
|
|
end
|
|
|
|
# def send_notification(email, subject, msg, unique_args)
|
|
# @body = msg
|
|
# sendgrid_category "Notification"
|
|
# sendgrid_unique_args :type => unique_args[:type]
|
|
# mail(:bcc => email, :subject => subject) do |format|
|
|
# format.text
|
|
# format.html
|
|
# end
|
|
# end
|
|
#############################################################################################
|
|
|
|
end
|
|
end
|