Initial commit
This commit is contained in:
35
app/services/twilio_verify_service.rb
Normal file
35
app/services/twilio_verify_service.rb
Normal file
@@ -0,0 +1,35 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# twilio process verification
|
||||
class TwilioVerifyService
|
||||
class << self
|
||||
def send_confirmation(phone, channel)
|
||||
Rails.logger.info("Sending code to #{phone.number} via #{channel}")
|
||||
|
||||
send_code(number: phone.number, channel: channel)
|
||||
end
|
||||
|
||||
def send_code(number:, channel:)
|
||||
verify_client.services(@service_sid)
|
||||
.verifications
|
||||
.create(to: '+' + number, channel: channel)
|
||||
end
|
||||
|
||||
# return true if twilio accepts given code for the given number
|
||||
def verify_code?(number:, code:, user:)
|
||||
status = verify_client.services(@service_sid)
|
||||
.verification_checks
|
||||
.create(to: '+' + number, code: code)
|
||||
.status
|
||||
|
||||
status == 'approved'
|
||||
end
|
||||
|
||||
def verify_client
|
||||
client = Barong::App.config.twilio_client
|
||||
@service_sid = Barong::App.config.twilio_service_sid
|
||||
|
||||
client.verify
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user