class ArmorPayments::Resource

Attributes

authenticator[RW]
host[RW]
uri_root[RW]

Public Class Methods

new(host, authenticator, uri_root) click to toggle source
# File lib/armor_payments/api/resource.rb, line 5
def initialize host, authenticator, uri_root
  self.host           = host
  self.authenticator  = authenticator
  self.uri_root       = uri_root
end

Public Instance Methods

all() click to toggle source
# File lib/armor_payments/api/resource.rb, line 34
def all
  headers = authenticator.secure_headers 'get', uri
  request :get, { path: uri, headers: headers }
end
connection() click to toggle source
# File lib/armor_payments/api/resource.rb, line 11
def connection
  @connection ||= Excon.new(host, headers: { 'Accept' => 'application/json' })
end
get(object_id) click to toggle source
# File lib/armor_payments/api/resource.rb, line 39
def get object_id
  headers = authenticator.secure_headers 'get', uri(object_id)
  request :get, { path: uri(object_id), headers: headers }
end
request(method, params) click to toggle source

If possible, parse the JSON

# File lib/armor_payments/api/resource.rb, line 26
def request method, params
  response = connection.send(method, params)
  if response.get_header('Content-Type') =~ /json/i
    response.body = JSON.parse response.body
  end
  response
end
resource_name() click to toggle source
# File lib/armor_payments/api/resource.rb, line 15
def resource_name
  self.class.to_s.downcase.split('::').last
end
uri(object_id = nil) click to toggle source
# File lib/armor_payments/api/resource.rb, line 19
def uri object_id = nil
  base = "#{uri_root}/#{resource_name}"
  base += "/#{object_id}" if object_id
  base
end