Class: Outbox::Bandwidth::Client
- Inherits:
-
Clients::Base
- Object
- Clients::Base
- Outbox::Bandwidth::Client
- Includes:
- Bandwidth::Messaging
- Defined in:
- lib/outbox/bandwidth/client.rb
Overview
Uses Bandwidth’s official Ruby API client (bandwidth) to deliver SMS messages.
Outbox::Messages::SMS.default_client(
:bandwidth,
account_sid: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
token: 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy',
secret: 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'
)
sms = Outbox::Messages::SMS.new(
to: '+15552224444',
from: '+15551115555',
body: 'Hello World'
)
sms.deliver
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.
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/outbox/bandwidth/client.rb', line 26 def initialize(settings = nil) super = @settings.dup @api_client = ::Bandwidth::Client.new( messaging_basic_auth_user_name: [:token], messaging_basic_auth_password: [:secret] ) @account_id = [:subaccount_id] || [:account_id] end |
Instance Attribute Details
#api_client ⇒ Object (readonly)
Returns the value of attribute api_client.
23 24 25 |
# File 'lib/outbox/bandwidth/client.rb', line 23 def api_client @api_client end |
Instance Method Details
#deliver(sms) ⇒ Object
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/outbox/bandwidth/client.rb', line 37 def deliver(sms) messaging_client = @api_client.messaging_client.client body = ::Bandwidth::MessageRequest.new body.application_id = sms[:application_id] body.to = sms.to body.from = sms.from body.text = sms.body body.media = [sms[:media_url]] unless sms[:media_url].nil? messaging_client.(account_id(sms), body: body) end |