class SmsFactor

Attributes

message[RW]
recipients[RW]
sender[RW]

Public Class Methods

new(message, recipients, sender = nil) click to toggle source
# File lib/sms_factor.rb, line 7
def initialize(message, recipients, sender = nil)
  raise "The configuration is not complete. Please define api_url, api_login, api_password and api_default_from" unless SmsFactor::Init.configuration.is_valid?
  
  @sender      ||= SmsFactor::Init.configuration.api_default_from
  @recipients    = recipients.kind_of?(Array) ? recipients : [recipients]
  @message       = message
end
sms(message, recipients, sender = nil) click to toggle source
# File lib/sms_factor.rb, line 57
def self.sms(message, recipients, sender = nil)
  sms = SmsFactor.new(message, recipients, sender)
  sms.deliver
end

Public Instance Methods

auth_credentials() click to toggle source
# File lib/sms_factor.rb, line 26
def auth_credentials
  @auth_credentials ||= {
                          authentication: {
                            username: SmsFactor::Init.configuration.api_login,
                            password: SmsFactor::Init.configuration.api_password
                          }
                        }
end
build() click to toggle source
# File lib/sms_factor.rb, line 15
def build
  {
    sms: auth_credentials.merge(
      message: {text: @message, sender: @sender, pushtype: 'alert'},
        recipients: {
          gsm: @recipients.collect{|recipient| {value: recipient}}
        }
    )
  }
end
deliver(delay: :now, check: false) click to toggle source
# File lib/sms_factor.rb, line 35
def deliver(delay: :now, check: false)
  data  =   case delay
              when nil, :now
                build
              else
                build[:sms].merge!({delay: delay})
              end
              
  url   =   "#{SmsFactor::Init.configuration.api_url}/send"
  url   =   "#{url}/simulate" if check
  
  SmsFactor::SmsResponse.new(
    RestClient.post(
      url,
      { data: data.to_json },
      content_type: :json,
      accept:       :json,
      verify_ssl:   false
    )
  )
end