class Xip::Services::Twilio::Client
Attributes
reply[R]
twilio_client[R]
Public Class Methods
new(reply:)
click to toggle source
# File lib/xip/services/twilio/client.rb, line 16 def initialize(reply:) @reply = reply account_sid = Xip.config.twilio.account_sid api_key = Xip.config.twilio.api_key auth_token = Xip.config.twilio.auth_token if api_key.present? @twilio_client = ::Twilio::REST::Client.new( api_key, auth_token, account_sid ) else @twilio_client = ::Twilio::REST::Client.new(account_sid, auth_token) end end
Public Instance Methods
transmit()
click to toggle source
# File lib/xip/services/twilio/client.rb, line 31 def transmit # Don't transmit anything for delays return true if reply.blank? begin response = twilio_client.messages.create(reply) rescue ::Twilio::REST::RestError => e Xip::Logger.l( topic: "twilio", message: "Error: #{e.message}" ) case e.message when /21610/ # Attempt to send to unsubscribed recipient raise Xip::Errors::UserOptOut when /21612/ # 'To' phone number is not currently reachable via SMS raise Xip::Errors::UserOptOut when /21614/ # 'To' number is not a valid mobile number raise Xip::Errors::UserOptOut when /30004/ # Message blocked raise Xip::Errors::UserOptOut when /21211/ # Invalid 'To' Phone Number raise Xip::Errors::InvalidSessionID when /30003/ # Unreachable destination handset raise Xip::Errors::InvalidSessionID when /30005/ # Unknown destination handset raise Xip::Errors::InvalidSessionID else raise end end Xip::Logger.l( topic: "twilio", message: "Transmitting. Response: #{response.status}: #{response.error_message}" ) end