Skip to content
Snippets Groups Projects
Commit 20cd71ea authored by pabois's avatar pabois
Browse files

add sms credits warning

parent 5cc8ae39
No related branches found
No related tags found
No related merge requests found
class Sendinblue::SmsCreditsWarningJob < ApplicationJob
queue_as :default
SMS_CREDITS_LIMIT = 500
def perform
return unless ENV['APPLICATION_ENV'] == 'production'
api_instance = SibApiV3Sdk::AccountApi.new
result = api_instance.get_account
sms_credits = result.plan.detect { |plan| plan.type == 'sms' }&.credits
if sms_credits.present? && sms_credits < SMS_CREDITS_LIMIT
# this message is sent to server_admins only, and server_admins are duplicated between all universities.
# so we take the first university
NotificationMailer.low_sms_credits(University.first, sms_credits).deliver_later
end
end
end
\ No newline at end of file
......@@ -29,5 +29,13 @@ class NotificationMailer < ApplicationMailer
subject = t('mailers.notifications.website_invalid_access_token.subject', website: website)
mail(from: user.university.mail_from[:full], to: user.email, subject: subject)
end
def low_sms_credits(university, credits)
merge_with_university_infos(university, {})
@credits = credits.to_i
mails = university.users.server_admin.pluck(:email)
subject = t('mailers.notifications.low_sms_credits.subject', credits: @credits)
mail(from: university.mail_from[:full], to: mails, subject: subject)
end
end
<%= t('mailers.notifications.low_sms_credits.body_1_html', credits: @credits) %>
<br>
<%= t('mailers.notifications.low_sms_credits.body_2_html', link: 'https://app.sendinblue.com/billing/addon/customize/sms') %>
\ No newline at end of file
......@@ -270,6 +270,10 @@ fr:
text_line_3_html: "Nombre de lignes traitées : %{number}."
text_error_msg: "Ligne %{line} : %{error}"
text_errors_title: "Des erreurs sont survenues :"
low_sms_credits:
body_1_html: "Attention, vos crédits SMS sont bas : %{credits} crédits restants !"
body_2_html: "Cliquez <a href=\"%{link}\" target=\"_blank\" style=\"color: #c72b43;\">ici</a> pour recharger le compte."
subject: "Osuny - Credits SMS bas (%{credits})"
website_invalid_access_token:
subject: Jeton d'accès expiré pour « %{website} »
text_line_1_html: Le jeton d'accès utilisé pour le site « %{website} » a expiré et ne permet plus la mise à jour du site.
......
# Preview all emails at http://localhost:3000/rails/mailers/notification_mailer
class NotificationMailerPreview < BaseMailerPreview
# Preview this email at http://localhost:3000/rails/mailers/notification_mailer/import
def import
NotificationMailer.import(organizations_import)
end
# Preview this email at http://localhost:3000/rails/mailers/notification_mailer/emergency_message
def emergency_message
NotificationMailer.emergency_message(sample_emergency_message, user, 'fr')
end
# Preview this email at http://localhost:3000/rails/mailers/notification_mailer/website_invalid_access_token
def website_invalid_access_token
NotificationMailer.website_invalid_access_token(website, user)
end
# Preview this email at http://localhost:3000/rails/mailers/notification_mailer/low_sms_credits
def low_sms_credits
credits = 22.0
NotificationMailer.low_sms_credits(university, credits)
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment