Class: Reactio::APIClient

Inherits:
Object
  • Object
show all
Defined in:
lib/reactio/api_client.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(http_client) ⇒ APIClient

Returns a new instance of APIClient.



29
30
31
# File 'lib/reactio/api_client.rb', line 29

def initialize(http_client)
  @http = http_client
end

Class Method Details

.build(api_key, organization) ⇒ Object

Raises:

  • (ArgumentError)


10
11
12
13
14
15
16
17
18
# File 'lib/reactio/api_client.rb', line 10

def build(api_key, organization)
  raise ArgumentError, 'api_key is required' unless api_key
  raise ArgumentError, 'organization is required' unless organization
  http_client = build_http_client(
    api_key,
    APIEndpoint.new(organization)
  )
  new(http_client)
end

.build_http_client(api_key, api_endpoint) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/reactio/api_client.rb', line 20

def build_http_client(api_key, api_endpoint)
  Faraday.new(url: api_endpoint.base_url) do |faraday|
    faraday.use :reactio, api_key
    faraday.request :url_encoded
    faraday.adapter Faraday.default_adapter
  end
end

Instance Method Details

#request(method, path, env = {}) ⇒ Object



33
34
35
36
# File 'lib/reactio/api_client.rb', line 33

def request(method, path, env = {})
  response = @http.send(method, path, env[:body])
  handle_api_response(response)
end