class EasyBroker::ApiClient

Attributes

logger[R]

Public Class Methods

new(logger: nil) click to toggle source
# File lib/easy_broker/api_client.rb, line 10
def initialize(logger: nil)
  self.class.base_uri EasyBroker.configuration.api_root_url
  self.class.headers EasyBroker::DEFAULT_HEADERS.merge(
    EasyBroker::AUTHORIZATION_HEADER => EasyBroker.configuration.api_key
  )
  @logger = logger
end

Public Instance Methods

delete(path, query: {}) click to toggle source
# File lib/easy_broker/api_client.rb, line 30
def delete(path, query: {})
  send_request(:delete, path, query: query)
end
get(path, query: {}) click to toggle source
# File lib/easy_broker/api_client.rb, line 18
def get(path, query: {})
  send_request(:get, path, query: query)
end
post(path, query: {}, body: {}) click to toggle source
# File lib/easy_broker/api_client.rb, line 22
def post(path, query: {}, body: {})
  send_request(:post, path, query: query, body: body)
end
put(path, query: {}, body: {}) click to toggle source
# File lib/easy_broker/api_client.rb, line 26
def put(path, query: {}, body: {})
  send_request(:put, path, query: query, body: body)
end

Private Instance Methods

check_errors(response) click to toggle source
# File lib/easy_broker/api_client.rb, line 45
def check_errors(response)
  raise EasyBroker::AuthenticationError.new(response) if response.code == 401
end
send_request(verb, path = '', params = {}) click to toggle source
# File lib/easy_broker/api_client.rb, line 36
def send_request(verb, path = '', params = {})
  query = params[:query] || params['query'] || {}

  self.class.send(verb, path, params.merge(query)).tap do |response|
    check_errors(response)
    logger&.log response
  end
end