class Itexmo::Message

message class

Constants

API_ENDPOINT
PARAMS

Attributes

api_code[RW]
message[RW]
to[RW]

Public Class Methods

new(options = {}) click to toggle source
# File lib/itexmo/message.rb, line 13
def initialize(options = {})
  @api_code = Itexmo.configuration.api_code
  @message  = options[:message]
  @priority = options[:priority]
  @to       = options[:to]
end
send(options = {}) click to toggle source
# File lib/itexmo/message.rb, line 63
def self.send(options = {})
  instance = new(options)
  instance.send
end

Public Instance Methods

priority() click to toggle source

default is NORMAL

# File lib/itexmo/message.rb, line 21
def priority
  @priority ||= Itexmo.configuration.priority
end
send() click to toggle source
# File lib/itexmo/message.rb, line 25
def send
  uri = URI(API_ENDPOINT + '/api.php')

  request = Net::HTTP.post_form(uri, parameters)
  response = request.body

  case response
  when '0'
    { code: 200, message: 'Success! Message is now on queue and will be sent soon.' }
  when '1'
    raise Errors::BadRequest, 'Invalid value for parameter to'
  when '2'
    raise Errors::BadRequest, 'Number prefix not supported. Please contact itexmo'
  when '3'
    raise Errors::Authentication, 'Invalid api_code'
  when '4'
    { code: 400, message: 'Maximum Message per day reached. This will be reset every 12MN' }
  when '5'
    raise Errors::BadRequest, 'Maximum allowed characters for message reached'
  when '6'
    { code: 422, message: 'System OFFLINE' }
  when '7'
    raise Errors::Authentication, 'Expired ApiCode'
  when '8'
    { code: 500, message: 'iTexMo Error. Please try again later.' }
  when '9'
    raise Errors::BadRequest, 'Invalid Function Parameters'
  when '10'
    { code: 422, message: "Recipient's number is blocked due to FLOODING, message was ignored" }
  when '11'
    { code: 422, message: "Recipient's number is blocked temporarily due to HARD sending (after 3 retries of sending and message still failed to send) and the message was ignored. Try again after an hour. " }
  when '12'
    raise Errors::BadRequest, "Invalid request. You can't set message priorities on non corporate apicodes"
  when '13'
    raise Errors::BadRequest, 'Invalid or Not Registered Custom Sender ID.'
  end
end

Private Instance Methods

parameters() click to toggle source
# File lib/itexmo/message.rb, line 70
def parameters
  PARAMS['1'] = to
  PARAMS['2'] = message
  PARAMS['3'] = api_code
  PARAMS['5'] = priority
  PARAMS
end