module TextMagic::API::Executor

Public Instance Methods

execute(command, username, password, options = {}) click to toggle source

Executes a command by sending a request to the TextMagic's Bulk SMS gateway. This is a low-level generic method used by methods in TextMagic::API class. You should never need to use this method directly.

Parameters specified in the options hash will be added to the HTTP POST request“s body together with command, username and password.

Returns a hash with values parsed from the server“s response if the command was successfully executed. In case the server replies with error, this method raises a TextMagic::API::Error.

# File lib/textmagic/executor.rb, line 23
def execute(command, username, password, options = {})
  raise TextMagic::API::Error.new(3, "Command is undefined") unless command
  raise TextMagic::API::Error.new(5, "Invalid username & password combination") unless username && password
  options.merge!(username: username, password: password, cmd: command)
  options.delete_if { |key, value| !key || !value }
  uri = URI("https://www.textmagic.com/app/api")
  response = Net::HTTP.post_form(uri, options)
  result = JSON.parse(response.body) if response.body
  raise Error, response.body if result && result["error_code"]
  result
end