class PinPays::Api

Constants

LIVE_URI
TEST_URI

Public Class Methods

setup(config) click to toggle source
# File lib/pin_pays/api.rb, line 10
def setup(config)
  base_uri(config.mode == :live ? LIVE_URI : TEST_URI)
  @@auth = { username: config.key, password: '' }
end

Protected Class Methods

api_get(path, query = nil) click to toggle source
# File lib/pin_pays/api.rb, line 17
def api_get(path, query = nil)
  get(path, query: query, basic_auth: @@auth)
end
api_paginated_response(response) click to toggle source
# File lib/pin_pays/api.rb, line 34
def api_paginated_response(response)
  raise ApiError.new(response.code, sybolize_keys(response.parsed_response)) unless response.code == 200 || response.code == 201
  { items: symbolize_keys(response.parsed_response['response']), pages: symbolize_keys(response.parsed_response['pagination']) }
end
api_post(path, body = nil) click to toggle source
# File lib/pin_pays/api.rb, line 21
def api_post(path, body = nil)
  post(path, body: body, basic_auth: @@auth)
end
api_put(path, body = nil) click to toggle source
# File lib/pin_pays/api.rb, line 25
def api_put(path, body = nil)
  put(path, body: body, basic_auth: @@auth)
end
api_response(response) click to toggle source
# File lib/pin_pays/api.rb, line 29
def api_response(response)
  raise ApiError.new(response.code, symbolize_keys(response.parsed_response)) unless response.code == 200 || response.code == 201
  symbolize_keys(response.parsed_response['response'])
end
symbolize_keys(o) click to toggle source
# File lib/pin_pays/api.rb, line 39
def symbolize_keys(o)
  return o.reduce({}) {|memo, (k, v)| memo.tap { |m| m[k.to_sym] = symbolize_keys(v) }} if o.is_a?(Hash)
  return o.reduce([]) {|memo, v| memo << symbolize_keys(v); memo } if o.is_a?(Array)
  o
end