class ShieldPay::Request

Constants

UPPERCASE_KEYS

Public Instance Methods

post(path, params) click to toggle source
# File lib/shieldpay/request.rb, line 13
def post(path, params)
  url = ShieldPay.configuration.api_endpoint_url + path
  params = add_auth_key(params)
  attrs = {
    body: processed_params(params),
    headers: headers
  }
  attrs[:debug_output] = $stdout if debug_mode?
  response = HTTParty.post(url, attrs)
  parse_response(response)
end

Private Instance Methods

add_auth_key(params) click to toggle source
# File lib/shieldpay/request.rb, line 27
def add_auth_key(params)
  params["organization_key"] = ShieldPay.configuration.org_key
  params
end
debug_mode?() click to toggle source
# File lib/shieldpay/request.rb, line 32
def debug_mode?
  ShieldPay.configuration.debug
end
display_debug(response) click to toggle source
# File lib/shieldpay/request.rb, line 36
def display_debug(response)
  if debug_mode?
    puts "-" * 20 + " DEBUG " + "-" * 20
    puts response
    puts "-" * 18 + " END DEBUG " + "-" * 18
  end
end
headers() click to toggle source
# File lib/shieldpay/request.rb, line 44
def headers
  {
    'Content-Type' => 'application/json',
    'Accept' => 'application/json'
  }
end
parse_response(response) click to toggle source
# File lib/shieldpay/request.rb, line 51
def parse_response(response)
  as_json = JSON.parse(response.body.to_s)
  check_for_error(as_json)
  display_debug(response.body)
  as_json
end
processed_keys(keys) click to toggle source
# File lib/shieldpay/request.rb, line 58
def processed_keys(keys)
  keys.inject({}) do |result, (key, value)|
    if UPPERCASE_KEYS.include?(key)
      result[key.upcase] = value
    else
      result[underscore_to_camel_case(key)] = value
    end
    result
  end
end
processed_params(params) click to toggle source
# File lib/shieldpay/request.rb, line 69
def processed_params(params)
  processed_keys(params).to_json
end
underscore_to_camel_case(string) click to toggle source
# File lib/shieldpay/request.rb, line 73
def underscore_to_camel_case(string)
  string.to_s.split('_').collect(&:capitalize).join
end