Module: Seam::Http::Request

Defined in:
lib/seam/request.rb

Defined Under Namespace

Classes: ResponseMiddleware

Class Method Summary collapse

Class Method Details

.create_faraday_client(endpoint, auth_headers, faraday_options = {}, faraday_retry_options = {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/seam/request.rb', line 12

def self.create_faraday_client(endpoint, auth_headers, faraday_options = {}, faraday_retry_options = {})
  default_options = {
    url: endpoint,
    headers: auth_headers.merge(default_headers)
  }

  options = deep_merge(default_options, faraday_options)

  default_faraday_retry_options = {
    max: 2,
    backoff_factor: 2
  }

  faraday_retry_options = default_faraday_retry_options.merge(faraday_retry_options)

  Faraday.new(options) do |builder|
    builder.request :json
    builder.use Seam::PaginationMiddleware
    builder.response :json
    builder.use ResponseMiddleware
    builder.request :retry, faraday_retry_options
  end
end

.default_headersObject



36
37
38
39
40
41
42
43
44
# File 'lib/seam/request.rb', line 36

def self.default_headers
  {
    "User-Agent" => "seam-ruby/#{Seam::VERSION}",
    "Content-Type" => "application/json",
    :"seam-sdk-name" => "seamapi/ruby",
    :"seam-sdk-version" => Seam::VERSION,
    :"seam-lts-version" => Seam::LTS_VERSION
  }
end