class ZipMoney::Api

Constants

HTTP_METHOD_GET
HTTP_METHOD_POST

Attributes

config[RW]
options[RW]
payload[RW]
response[RW]

Public Class Methods

new(conf,options={}) click to toggle source

Initializes a new api object

@param [conf] ZipMoney::Configuration @param [options] api options

@return ZipMoney::Api instance

# File lib/zipMoney/api.rb, line 15
def initialize(conf,options={})         
  if conf.new.class == ZipMoney::Configuration
    @config = conf
  else
    raise ArgumentError, "Config is not valid"
  end
  @options = options
end

Public Instance Methods

append_api_credentials(params) click to toggle source

Appends api credentials to the request object

@param [data] Request data

@return data

# File lib/zipMoney/api.rb, line 29
def append_api_credentials(params)
  is_param_defined(params) do
    params = Struct::ApiCredentials.new
    params.version = Struct::Version.new
  end 
  if params.merchant_id  == nil 
     params.merchant_id  = self.config.merchant_id
  end
  if params.merchant_key == nil
     params.merchant_key = self.config.merchant_key
  end
  if params.version.client == nil
     params.version.client = ZipMoney::Configuration::API_NAME + " Version:" + ZipMoney::Configuration::API_VERSION
  end
  if params.version.platform == nil
     params.version.platform = ZipMoney::Configuration::API_PLATFORM
  end
  params  
end
cancel(params) click to toggle source

Makes cancel call on the zipMoney endpoint

@param [params] request parameters

@return ZipMoney::Response object

# File lib/zipMoney/api.rb, line 152
def cancel(params)
  request(Resources::RESOURCE_CANCEL, HTTP_METHOD_POST, params)
end
capture(params) click to toggle source

Makes capture call on the zipMoney endpoint

@param [params] request parameters

@return ZipMoney::Response object

# File lib/zipMoney/api.rb, line 134
def capture(params)
  request(Resources::RESOURCE_CAPTURE, HTTP_METHOD_POST, params)
end
checkout(params) click to toggle source

Makes checkout call on the zipMoney endpoint

@param [params] request parameters

@return ZipMoney::Response object

# File lib/zipMoney/api.rb, line 116
def checkout(params)
  request(Resources::RESOURCE_CHECKOUT, HTTP_METHOD_POST, params)
end
configure(params) click to toggle source

Makes configure call on the zipMoney endpoint

@param [params] request parameters

@return ZipMoney::Response object

# File lib/zipMoney/api.rb, line 170
def configure(params)
  request(Resources::RESOURCE_CONFIGURE, HTTP_METHOD_POST, params)
end
heartbeat() click to toggle source

Makes heartbeat call on the zipMoney endpoint

@param [params] request parameters

@return ZipMoney::Response object

# File lib/zipMoney/api.rb, line 188
def heartbeat
  request(Resources::RESOURCE_HEARTBEAT, HTTP_METHOD_POST)
end
is_param_defined(params) { || ... } click to toggle source

Checks if data is a Struct and calls the block passed as parameter if true

@param [data] Request data

@return true|false

# File lib/zipMoney/api.rb, line 54
def is_param_defined(params)
  yield if !params.is_a?(Struct) 
end
prepare_params(params) click to toggle source

Converts the parameters(Hash) to json

@param [params] request parameters

@return data as json

# File lib/zipMoney/api.rb, line 92
def prepare_params(params)
  begin
    params =  Util.struct_to_hash(params).to_json
  rescue TypeError => e
    if params.is_a?(Hash)
      params = params.to_json
    else  
      raise ArgumentError, "Invalid params provided" 
    end
  rescue JSON::ParserError => e
    if params.is_a?(Hash)
       params = params.to_json
    else  
      raise ArgumentError, "Invalid params provided" 
    end
  end
  params
end
query(params) click to toggle source

Makes query call on the zipMoney endpoint

@param [params] request parameters

@return ZipMoney::Response object

# File lib/zipMoney/api.rb, line 161
def query(params)
  request(Resources::RESOURCE_QUERY, HTTP_METHOD_POST, params)
end
quote(params) click to toggle source

Makes quote call on the zipMoney endpoint

@param [params] request parameters

@return ZipMoney::Response object

# File lib/zipMoney/api.rb, line 125
def quote(params)
  request(Resources::RESOURCE_QUOTE, HTTP_METHOD_POST, params)
end
refund(params) click to toggle source

Makes refund call on the zipMoney endpoint

@param [params] request parameters

@return ZipMoney::Response object

# File lib/zipMoney/api.rb, line 143
def refund(params)
  request(Resources::RESOURCE_REFUND, HTTP_METHOD_POST, params)
end
request(resource, method, params = nil) click to toggle source

Makes request to the zipMoney endpoint

@param [resource] endpoint resource @param [method] method get|post @param [params] request parameters

@return ZipMoney::Response object

# File lib/zipMoney/api.rb, line 65
def request(resource, method,  params = nil)      
  resource = Resources.get(resource, method, params)
  params   = append_api_credentials(params)

  if method == :post
    payload = prepare_params(params)
  else
    payload = {}
  end

  headers = @options[:headers] || {}
  if method == :get 
    resource.send(method, headers) do |response, request, result, &block| 
        ZipMoney::Response.new(response)
    end
  else
    resource.send(method, payload, headers) do |response, request, result, &block|
      ZipMoney::Response.new(response)
    end
  end
end
settings() click to toggle source

Makes settings call on the zipMoney endpoint

@param [params] request parameters

@return ZipMoney::Response object

# File lib/zipMoney/api.rb, line 179
def settings
  request(Resources::RESOURCE_SETTINGS, HTTP_METHOD_POST)
end