Class: BaremetricsAPI::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/baremetrics_api/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = nil) ⇒ Client

Returns a new instance of Client.



17
18
19
20
21
22
23
24
25
26
# File 'lib/baremetrics_api/client.rb', line 17

def initialize(options = nil)
  @configuration = nil
  append_request_methods_to_class

  return if options.nil?

  @configuration = Configuration.new(options)

  ensure_valid_configuration
end

Instance Attribute Details

#configurationObject (readonly)

Returns the value of attribute configuration.



15
16
17
# File 'lib/baremetrics_api/client.rb', line 15

def configuration
  @configuration
end

Instance Method Details

#configure {|Configuration| ... } ⇒ Object

Configure the API client

Examples:

Basic configuration

BaremetricsAPI.client.configure do |config|
  config.api_key = 'test123'
  config.response_limit = '30'
end

Yields:

Raises:



35
36
37
38
39
40
41
42
# File 'lib/baremetrics_api/client.rb', line 35

def configure
  raise Error::AlreadyConfigured unless @configuration.nil?

  @configuration = Configuration.new
  yield(@configuration)

  ensure_valid_configuration
end

#connectionObject

Returns the raw Faraday connection configured using the current configuration



45
46
47
48
49
50
51
52
53
54
# File 'lib/baremetrics_api/client.rb', line 45

def connection
  ensure_valid_configuration
  host = configuration.sandbox ? Constants::SANDBOX_API_HOST : Constants::API_HOST
  Faraday.new(host, headers: { authorization: "Bearer #{configuration.api_key}", content_type: 'application/json', accept: 'application/json' }) do |f|
    f.request :json
    f.response :logger if configuration.log_traffic
    f.use Faraday::RateChecker
    f.adapter :httpclient
  end
end