class GlobelabsSmsRails::Client

Constants

MSG_PARAMS

Attributes

address[RW]
app_id[RW]
app_secret[RW]
host[RW]
message[RW]
passphrase[RW]
short_code[RW]

Public Class Methods

new(options = {}) click to toggle source
# File lib/globelabs_sms_rails/client.rb, line 9
def initialize(options = {})
   @app_id = GlobelabsSmsRails.configuration.app_id
   @app_secret = GlobelabsSmsRails.configuration.app_secret
   @passphrase = GlobelabsSmsRails.configuration.passphrase
   @short_code = GlobelabsSmsRails.configuration.short_code
   @host = "https://devapi.globelabs.com.ph/smsmessaging/v1/outbound/#{short_code}/requests"
end
send(options={}) click to toggle source
# File lib/globelabs_sms_rails/client.rb, line 39
def self.send(options={})
   obj = self.new(options)
   return obj.send(options)
end

Public Instance Methods

send(options) click to toggle source
# File lib/globelabs_sms_rails/client.rb, line 17
def send(options)
   @address = options.fetch(:address)
   @message = options.fetch(:message)
   uri = URI(host)

   request = Net::HTTP.post_form(uri, message_params)
   response = JSON.parse(request.body, symbolize_names: true)

   if response.has_key?(:http_code)
      case response[:http_code].to_i
      when 400
         raise Errors::BadRequest, response[:error]
      when 401
         raise Errors::Authentication, response[:error]
      else
         raise StandardError, response[:error]
      end
   else
      response.merge!(http_code: '200')
   end
end

Private Instance Methods

message_params() click to toggle source
# File lib/globelabs_sms_rails/client.rb, line 46
def message_params
   MSG_PARAMS['app_id'] = app_id
   MSG_PARAMS['app_secret'] = app_secret
   MSG_PARAMS['passphrase'] = passphrase
   MSG_PARAMS['address'] = address
   MSG_PARAMS['message'] = message
   MSG_PARAMS
end