class Payture::Api::V1::Request

Attributes

response[R]
result[R]

Public Class Methods

new(url, params) click to toggle source
# File lib/payture/api/v1/request.rb, line 6
def initialize(url, params)
  params = prepare_params(params)
  @response = rest_client.post(url, params)
  @result = Response.new(response).result
end

Public Instance Methods

convert_keys(params) click to toggle source
# File lib/payture/api/v1/request.rb, line 26
def convert_keys(params)
  mappings = {
    'Pan' => 'PAN',
    'Ip' => 'IP',
    'Data' => 'DATA',
    'VwId' => 'VWID',
    'VwUserLgn' => 'VWUserLgn',
    'VwUserPsw' => 'VWUserPsw'
  }

  Hash[params.map {|k, v| [k.to_s.to_camelcase(mappings), v] }]
end
endode_data(data) click to toggle source
# File lib/payture/api/v1/request.rb, line 16
def endode_data(data)
  if data.kind_of?(Hash)
    data = convert_keys(data)
    data = Array[data.map {|k, v| "#{k}=#{v}" }].join(';')
    data = CGI.escape(data)
  end

  data
end
prepare_params(params) click to toggle source
# File lib/payture/api/v1/request.rb, line 39
def prepare_params(params)
  params = convert_keys(params)
  params = Hash[params.map {|k, v| v.kind_of?(Hash) ? [k, endode_data(v)] : [k, v] }]
end
rest_client() click to toggle source
# File lib/payture/api/v1/request.rb, line 12
def rest_client
  @rest_client ||= RestClient
end