Sha256: ca27e305e67ed7951fcede395c6cf96c9b88ce2fe1b300a00a1bfa90a1e1ddd7

Contents?: true

Size: 1.44 KB

Versions: 1

Compression:

Stored size: 1.44 KB

Contents

module TextMagic

  class API

    class Executor

      include HTTParty
      base_uri "http://www.textmagic.com/app"

      # 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.
      def self.execute(command, username, password, options = {})
        raise TextMagic::API::Error.new(3, "Command is undefined") if command.nil? || command.blank?
        if username.nil? || username.blank? || password.nil? || password.blank?
          raise TextMagic::API::Error.new(5, "Invalid username & password combination")
        end
        options.merge!(:username => username, :password => password, :cmd => command)
        options.delete_if { |key, value| key.nil? || key.to_s.blank? || value.nil? || value.to_s.blank? }
        response = self.post("/api", :body => options, :format => :json)
        raise Error.new(response) if response && response["error_code"]
        response
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
textmagic-0.4.0 lib/executor.rb