Class: Kount::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/kount/request.rb

Overview

This class acts as an abstract class for each type of request.

Direct Known Subclasses

Inquiry, Update

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(initial_params = {}) ⇒ Request

Initialize a Request object

Example usage

Not used directly. Use Inquiry or Update instead.

Parameters:

  • initial_params (Hash) (defaults to: {})

    Initial params for request



16
17
18
19
20
21
22
# File 'lib/kount/request.rb', line 16

def initialize(initial_params = {})
  @logger = Logger.new("Logs.log")
  raise "Cannot directly instantiate a #{self.class}." if
    self.class == Request
  @params = initial_params
  @logger.info("Request Objects : #{@params}")
end

Instance Attribute Details

#paramsObject

Returns the value of attribute params.



8
9
10
# File 'lib/kount/request.rb', line 8

def params
  @params
end

Instance Method Details

#add_params(hash) ⇒ Object

Add params to the current request object

Parameters:

  • hash (Hash)

    Hash of values to be added



26
27
28
# File 'lib/kount/request.rb', line 26

def add_params(hash)
  @params.merge!(hash)
end

#prepare_params(version, merchant_id, response_format, _ksalt = '') ⇒ Object

This method creates the final state of the params collection such that it can be sent to RIS. Items that are specific to either the Inquiry or Update calls are delegated to the prepare_params method in each respective class.

Parameters:

  • version (String)

    RIS version

  • merchant_id (String)

    Merchant ID

  • response_format (String)

    Response format (JSON)

  • _ksalt (String) (defaults to: '')

    Kount supplied secret salt for KHASH



39
40
41
42
43
44
45
46
47
48
# File 'lib/kount/request.rb', line 39

def prepare_params(version, merchant_id, response_format, _ksalt = '')
  # The KSALT is not used here, however, it is used in the corresponding
  # subclass prepare_params methods.
  if merchant_id == '' # Check if merchant_id is set or not
    @logger.debug("Merchant Id not set.")
  elsif version.empty? # Check VERSION is set or not
    @logger.debug("Version not set")
  end
  params.merge!(VERS: version, MERC: merchant_id, FRMT: response_format)
end