class Bancard::Gateway

Attributes

private_key[RW]
public_key[RW]

Public Class Methods

new(auth_params = {}) click to toggle source
# File lib/bancard/gateway.rb, line 5
def initialize(auth_params = {})
  @public_key      = auth_params.fetch(:public_key)
  @private_key     = auth_params.fetch(:private_key)
end

Public Instance Methods

rollback(params = {}) click to toggle source
# File lib/bancard/gateway.rb, line 15
def rollback(params = {})
  rollback = build_single_buy_rollback(params)
  submit_single_buy_rollback(rollback)
end
single_buy(params = {}) click to toggle source
# File lib/bancard/gateway.rb, line 10
def single_buy(params = {})
  init = build_single_buy_init(params)
  submit_single_buy_init(init)
end

Private Instance Methods

build_single_buy_init(params = {}) click to toggle source
# File lib/bancard/gateway.rb, line 22
def build_single_buy_init(params = {})
  Bancard::SingleBuyInit.new(merge_auth_params(params))
end
build_single_buy_rollback(params = {}) click to toggle source
# File lib/bancard/gateway.rb, line 26
def build_single_buy_rollback(params = {})
  Bancard::SingleBuyRollback.new(merge_auth_params(params))
end
merge_auth_params(hash) click to toggle source
# File lib/bancard/gateway.rb, line 42
def merge_auth_params(hash)
  hash.merge(public_key: public_key, private_key: private_key)
end
submit_single_buy_init(init) click to toggle source
# File lib/bancard/gateway.rb, line 30
def submit_single_buy_init(init)
  url      = Bancard.vpos_url(Bancard::SingleBuyInit::ENDPOINT)
  response = Typhoeus.post(url, body: init.request_params.to_json)
  Bancard::SingleBuyInitResponse.new response
end
submit_single_buy_rollback(rollback) click to toggle source
# File lib/bancard/gateway.rb, line 36
def submit_single_buy_rollback(rollback)
  url      = Bancard.vpos_url(Bancard::SingleBuyRollback::ENDPOINT)
  response = Typhoeus.post(url, body: rollback.request_params.to_json)
  Bancard::SingleBuyRollbackResponse.new response
end