44 lines
1.5 KiB
Ruby
44 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# kavenegar sms sender
|
|
class KaveNegarSmsService
|
|
class << self
|
|
def send_confirmation(user)
|
|
Rails.logger.info("Sending SMS to #{user.phones.last.number}")
|
|
totp = TOTPServiceAction.new('register-mobile')
|
|
totp.create(user.uid, user.email, period: '120')
|
|
user.write_cache('register_mobile', 'true', 120)
|
|
send_sms(user.mobile('pending').number.to_s, totp.read_code(user.uid))
|
|
end
|
|
|
|
def send_call_confirmation(user)
|
|
Rails.logger.info("Sending call to #{user.phones.find_by(category: 'landline').number}")
|
|
totp = TOTPServiceAction.new('register-phone')
|
|
totp.create(user.uid, user.email, period: '120')
|
|
user.write_cache('register_phone', 'true', 120)
|
|
send_call(user.phones.find_by(category: 'landline').number.to_s, totp.read_code(user.uid))
|
|
end
|
|
|
|
def send_call(number, code)
|
|
client = KaveRestApi::Lookup.new({ receptor: number,
|
|
token: code,
|
|
template: 'phone',
|
|
type: 'call' # or call
|
|
})
|
|
|
|
client.call.valid? ? true : false
|
|
end
|
|
|
|
def send_sms(number, code)
|
|
client = KaveRestApi::Lookup.new({ receptor: number,
|
|
token: code,
|
|
template: 'mobile',
|
|
type: 'sms' # or call
|
|
})
|
|
|
|
client.call.valid? ? true : false
|
|
end
|
|
|
|
end
|
|
end
|