Skip to content
Snippets Groups Projects
Commit 7873f9d9 authored by Arnaud Levy's avatar Arnaud Levy
Browse files

better

parent 96e4b8a2
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
if Sendinblue.SmsService.low?
# 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
......
module Sendinblue
class SmsService
DEFAULT_SENDER_NAME = 'Osuny'.freeze
SMS_CREDITS_LIMIT = 500
def self.low?
api_instance = SibApiV3Sdk::AccountApi.new
result = api_instance.get_account
sms_credits = result.plan.detect { |plan| plan.type == 'sms' }&.credits
sms_credits.present? && sms_credits < SMS_CREDITS_LIMIT
end
def self.send_mfa_code(user, code)
duration = ActiveSupport::Duration.build(Rails.application.config.devise.direct_otp_valid_for).inspect
......
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