From c572b0ac27c9151f81c828d18d7e6518ffb203cf Mon Sep 17 00:00:00 2001 From: Seth Call Date: Sat, 5 Dec 2020 14:45:44 -0600 Subject: [PATCH] done --- ruby/lib/jam_ruby/app/mailers/user_mailer.rb | 23 +++++++++++++++++++ .../user_mailer/notify_admin_plan.html.erb | 14 +++++++++++ .../user_mailer/notify_admin_plan.text.erb | 11 +++++++++ ruby/lib/jam_ruby/models/user.rb | 3 +++ ruby/lib/jam_ruby/subscription_definitions.rb | 12 ++++++---- 5 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.html.erb create mode 100644 ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.text.erb diff --git a/ruby/lib/jam_ruby/app/mailers/user_mailer.rb b/ruby/lib/jam_ruby/app/mailers/user_mailer.rb index 1d23e2a63..6fbd9c649 100644 --- a/ruby/lib/jam_ruby/app/mailers/user_mailer.rb +++ b/ruby/lib/jam_ruby/app/mailers/user_mailer.rb @@ -51,6 +51,29 @@ module JamRuby end end + def notify_admin_plan(user) + if user.admin_override_plan_code.nil? + puts "INVALID NOTIFY ADMIN SUBSCRIPTION FOR USER #{user.email}" + return nil + end + + @user = user + @subscription_rules = SubscriptionDefinitions.rules(user.subscription_plan_code) + @plan_end_at = user.admin_override_ends_at.strftime("%B %-d, %Y") + + sendgrid_category "Subscription" + sendgrid_unique_args :type => "admin_subscription" + + sendgrid_recipients([user.email]) + sendgrid_substitute('@USERID', [user.id]) + sendgrid_substitute(EmailBatchProgression::VAR_FIRST_NAME, [user.first_name]) + + mail(:to => user.email, :cc => APP_CONFIG.email_support_alias, :subject => "Enjoy your free #{@subscription_rules[:name]} plan until #{@plan_end_at}") do |format| + format.text + format.html + end + end + def take_paid_lesson(user) @user = user @lesson = user.taken_lessons.order(:created_at).last diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.html.erb new file mode 100644 index 000000000..3e8d8866f --- /dev/null +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.html.erb @@ -0,0 +1,14 @@ +<% provide(:title, @subject) %> + + +<% if !@user.anonymous? %> +

Hi <%= @user.first_name %>, +

+<% end %> + +

+ JamKazam has given you a <%= @subscription_rules[:name] %> plan for free until <%= @plan_end_at %>! After that date, your plan will automatically switch back to the Free plan. +

+ +

Best Regards,
+ Team JamKazam

\ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.text.erb new file mode 100644 index 000000000..00fa6e6bd --- /dev/null +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.text.erb @@ -0,0 +1,11 @@ +<% provide(:title, @subject) %> + + +<% if !@user.anonymous? %> +Hi <%= @user.first_name %>, +<% end %> + +JamKazam has given you the <%= @subscription_rules[:name] %> for free until <%= @plan_end_at %>. When the plan ends, your plan will automatically switch back to the Free plan. + +Best Regards, +Team JamKazam \ No newline at end of file diff --git a/ruby/lib/jam_ruby/models/user.rb b/ruby/lib/jam_ruby/models/user.rb index 9088063dc..7010e5927 100644 --- a/ruby/lib/jam_ruby/models/user.rb +++ b/ruby/lib/jam_ruby/models/user.rb @@ -2883,8 +2883,11 @@ module JamRuby self.subscription_plan_code_set_at = DateTime.now if plan_code.nil? self.admin_override_ends_at = nil + else + UserMailer.notify_admin_plan(self).deliver_now end + self.save(validate: false) end diff --git a/ruby/lib/jam_ruby/subscription_definitions.rb b/ruby/lib/jam_ruby/subscription_definitions.rb index c5d5e46e3..7683d3706 100644 --- a/ruby/lib/jam_ruby/subscription_definitions.rb +++ b/ruby/lib/jam_ruby/subscription_definitions.rb @@ -36,7 +36,8 @@ module JamRuby can_broadcast: false, broadcasting_type: 3, max_players: 4, - pro_audio: false + pro_audio: false, + name: 'Free' } @@ -52,7 +53,8 @@ module JamRuby can_broadcast: true, broadcasting_type: 3, max_players: 6, - pro_audio: false + pro_audio: false, + name: 'Silver' } GOLD_PLAN = { @@ -67,7 +69,8 @@ module JamRuby can_broadcast: true, broadcasting_type: 3, max_players: nil, - pro_audio: true + pro_audio: true, + name: 'Gold' } PLATINUM_PLAN = { @@ -82,7 +85,8 @@ module JamRuby can_broadcast: true, broadcasting_type: 3, max_players: nil, - pro_audio: true + pro_audio: true, + name: 'Platinum' } def self.rules(plan_code)