module Moyasar

Constants

Errors
VERSION

Attributes

api_base[R]
api_key[RW]
api_version[R]

Public Class Methods

request(method, url, key: nil, params: {}, headers: {}) click to toggle source
# File lib/moyasar.rb, line 55
def request(method, url, key: nil, params: {}, headers: {})
  unless key ||= @api_key
    raise AuthenticationError.new('No API Key provided.')
  end

  client = Moyasar::HTTPClient.new(@api_base)
  response = client.request_json(method, url, key, params, headers)
  case response.code
  when 400..429
    error_data = response.body.merge({ 'http_code' => response.code })
    error = Errors[response.body['type']]
    raise error, error_data
  when 500..504
    raise APIError, { 'http_code' => response.code }
  end
  response
end