class SixSaferpay::Client

Attributes

object[RW]
request[RW]
response[RW]

Public Class Methods

new(object) click to toggle source
# File lib/six_saferpay/client.rb, line 5
def initialize(object)
  @object = object
end
post(object) click to toggle source
# File lib/six_saferpay/client.rb, line 9
def self.post(object)
  new(object).post
end

Public Instance Methods

post() click to toggle source
# File lib/six_saferpay/client.rb, line 13
def post
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  @response = https.request(request)
  hash = @response.body
  hash = JSON.parse(hash, symbolize_names: true)
  hash = transform_response_hash(hash)
  if @response.code == '200'
    @object.response_class.new(hash)
  else
    raise SixSaferpay::Error.new(hash)
  end
end

Protected Instance Methods

header() click to toggle source
# File lib/six_saferpay/client.rb, line 29
def header
  {"Content-Type" => 'application/json'}
end

Private Instance Methods

base_url() click to toggle source
# File lib/six_saferpay/client.rb, line 49
def base_url
  SixSaferpay.config.base_url
end
password() click to toggle source
# File lib/six_saferpay/client.rb, line 57
def password
  SixSaferpay.config.password
end
transform_request_hash(hash) click to toggle source
# File lib/six_saferpay/client.rb, line 61
def transform_request_hash(hash)
  hash = hash.deep_transform_keys do |key|
    key = key.to_s
    key.gsub!('fd_','')
    key = key.camelize
    key.to_sym
  end
end
transform_response_hash(hash) click to toggle source
# File lib/six_saferpay/client.rb, line 70
def transform_response_hash(hash)
  hash = hash.deep_transform_keys do |key|
    key = key.to_s.underscore
    key.gsub!(/^alias/,'fd_alias')
    key.gsub!(/^abort/,'fd_abort')
    key.gsub!(/^fail/,'fd_fail')
    key.to_sym
  end
end
uri() click to toggle source
# File lib/six_saferpay/client.rb, line 45
def uri
  URI.parse(base_url + @object.url)
end
username() click to toggle source
# File lib/six_saferpay/client.rb, line 53
def username
  SixSaferpay.config.username
end