class KOSapiClient::ApiClient

Attributes

http_client[R]

Public Class Methods

new(config = Configuration.new) click to toggle source

Creates a new KOSapi client.

# File lib/kosapi_client/api_client.rb, line 24
def initialize(config = Configuration.new)
  http_adapter = OAuth2HttpAdapter.new(config.credentials, config.base_url, config.to_h)
  @http_client = HTTPClient.new(http_adapter)
end

Public Instance Methods

create_builder(resource_name) click to toggle source
# File lib/kosapi_client/api_client.rb, line 29
def create_builder(resource_name)
  builder_name = "#{resource_name}_builder".camelcase(:upper).to_sym
  builder_class = find_builder_class(builder_name)
  builder_class.new(resource_name.to_s.camelcase(:lower), @http_client)
end

Private Instance Methods

find_builder_class(builder_name) click to toggle source
# File lib/kosapi_client/api_client.rb, line 36
def find_builder_class(builder_name)
  KOSapiClient::Resource.constants.each do |m|
    constant = KOSapiClient::Resource.const_get(m)
    if constant.is_a?(Class) && m == builder_name
      return constant
    end
  end
  RequestBuilder
end