class CheckoutSdk::ApiResource

Attributes

checkout_connection[R]

Public Class Methods

new() click to toggle source
# File lib/checkout_sdk/api_resource.rb, line 7
def initialize
  @checkout_connection = Excon.new("#{CheckoutSdk.configuration.base_url}", persistent: true)
end

Public Instance Methods

add_payment_source(data_object) click to toggle source
# File lib/checkout_sdk/api_resource.rb, line 27
def add_payment_source(data_object)
  post_request("/sources", data_object.data)
end
capture_payment(data_object) click to toggle source
# File lib/checkout_sdk/api_resource.rb, line 15
def capture_payment(data_object)
  post_request("/payments/#{data_object.id}/captures", data_object.data)
end
get_payment_actions(id) click to toggle source
# File lib/checkout_sdk/api_resource.rb, line 39
def get_payment_actions(id)
  get("/payments/#{id}/actions")
end
get_payment_details(id) click to toggle source
# File lib/checkout_sdk/api_resource.rb, line 35
def get_payment_details(id)
  get("/payments/#{id}")
end
refund_payment(data_object) click to toggle source
# File lib/checkout_sdk/api_resource.rb, line 19
def refund_payment(data_object)
  post_request("/payments/#{data_object.id}/refunds", data_object.data)
end
request_payment(data_object) click to toggle source
# File lib/checkout_sdk/api_resource.rb, line 11
def request_payment(data_object)
  post_request("/payments", data_object.data)
end
request_token(data_object) click to toggle source
# File lib/checkout_sdk/api_resource.rb, line 31
def request_token(data_object)
  post_request("/tokens", data_object.data)
end
void_payment(data_object) click to toggle source
# File lib/checkout_sdk/api_resource.rb, line 23
def void_payment(data_object)
  post_request("/payments/#{data_object.id}/voids", data_object.data)
end

Private Instance Methods

delete_blank(data_hash) click to toggle source
# File lib/checkout_sdk/api_resource.rb, line 69
def delete_blank(data_hash)
  data_hash.delete_if do |k, v|
    (v.respond_to?(:empty?) ? v.empty? : v.nil?) or v.instance_of?(Hash) && delete_blank(v).empty?
  end
end
get(path) click to toggle source
# File lib/checkout_sdk/api_resource.rb, line 54
def get(path)
  checkout_connection.get(
    path: path,
    headers: { "Authorization" => CheckoutSdk.configuration.secret_key }
  )
end
key(path) click to toggle source
# File lib/checkout_sdk/api_resource.rb, line 61
def key(path)
  if path == "/tokens"
    CheckoutSdk.configuration.public_key
  else
    CheckoutSdk.configuration.secret_key
  end
end
post_request(path, data) click to toggle source
# File lib/checkout_sdk/api_resource.rb, line 45
def post_request(path, data)
  checkout_connection.post(
    path: path,
    body: MultiJson.dump(delete_blank(data)),
    headers: { "Content-Type" => "application/json",
               "Authorization" => key(path) }
  )
end