Class: Outbox::Twilio::Client

Inherits:
Clients::Base
  • Object
show all
Defined in:
lib/outbox/twilio/client.rb

Overview

Uses Twilio’s official Ruby API client (twilio-ruby) to deliver SMS messages.

Outbox::Messages::SMS.default_client(
  :twilio,
  account_sid: 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  auth_token: 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
)
sms = Outbox::Messages::SMS.new(
  from: '+15551115555',
  body: 'Hello World'
)
sms.deliver('+15552224444')

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(settings = nil) ⇒ Client

Returns a new instance of Client.



23
24
25
26
27
28
29
30
31
32
# File 'lib/outbox/twilio/client.rb', line 23

def initialize(settings = nil)
  super

  options = @settings.dup
  @api_client = ::Twilio::REST::Client.new(
    options[:username] || options[:account_sid],
    options[:password] || options[:auth_token],
    options[:subaccount_sid] || options[:account_sid]
  )
end

Instance Attribute Details

#api_clientObject (readonly)

Returns the value of attribute api_client.



21
22
23
# File 'lib/outbox/twilio/client.rb', line 21

def api_client
  @api_client
end

Instance Method Details

#deliver(sms) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/outbox/twilio/client.rb', line 34

def deliver(sms)
  params = {
    from: sms.from,
    to: sms.to,
    body: sms.body,
    media_url: sms[:media_url],
    status_callback: sms[:status_callback],
    application_sid: sms[:application_sid]
  }
  params.delete_if { |_, value| value.nil? }
  (sms).messages.create(params)
end