Class: MoesifApi::FaradayClient

Inherits:
HttpClient show all
Defined in:
lib/moesif_api/http/faraday_client.rb

Instance Method Summary collapse

Methods inherited from HttpClient

#delete, #execute_as_binary, #get, #patch, #post, #put

Constructor Details

#initializeFaradayClient

Returns a new instance of FaradayClient.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/moesif_api/http/faraday_client.rb', line 15

def initialize
  super()
  retry_options = {
    max: 3,
    interval: 0.1,
    interval_randomness: 0.5,
    backoff_factor: 2
  }

  @connection = Faraday.new({}) do |f|
    f.request :retry, retry_options
    f.adapter :net_http_persistent, pool_size: 5 do |http|
      http.idle_timeout = 100
    end
  end
end

Instance Method Details

#convert_response(response) ⇒ Object

Method overridden from HttpClient.



43
44
45
46
47
48
49
50
51
# File 'lib/moesif_api/http/faraday_client.rb', line 43

def convert_response(response)
  if response.body.is_a?(String)
    raw_body = response.body
  elsif !response.body.nil?
    raw_body = JSON.generate(response.body)
  end

  HttpResponse.new(response.status, response.headers.dup, raw_body)
end

#execute_as_string(http_request) ⇒ Object

Method overridden from HttpClient.



33
34
35
36
37
38
39
40
# File 'lib/moesif_api/http/faraday_client.rb', line 33

def execute_as_string(http_request)
  response = @connection.run_request(http_request.http_method.downcase.to_sym,
                                     http_request.query_url,
                                     http_request.parameters, # body
                                     http_request.headers)

  convert_response(response)
end