Class: Outbox::Twilio::Client
- Inherits:
-
Clients::Base
- Object
- Clients::Base
- Outbox::Twilio::Client
- 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
-
#api_client ⇒ Object
readonly
Returns the value of attribute api_client.
Instance Method Summary collapse
- #deliver(sms) ⇒ Object
-
#initialize(settings = nil) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(settings = nil) ⇒ Client
Returns a new instance of Client.
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/outbox/twilio/client.rb', line 21 def initialize(settings = nil) super = @settings.dup @api_client = ::Twilio::REST::Client.new( [:username] || [:account_sid], [:password] || [:auth_token], [:account_sid], ) end |
Instance Attribute Details
#api_client ⇒ Object (readonly)
Returns the value of attribute api_client.
19 20 21 |
# File 'lib/outbox/twilio/client.rb', line 19 def api_client @api_client end |
Instance Method Details
#deliver(sms) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/outbox/twilio/client.rb', line 32 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? } @api_client.account..create(params).fetch end |