Module: FinAppsCore::REST::Connection

Included in:
BaseClient
Defined in:
lib/finapps_core/rest/connection.rb

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.faraday(config, logger) ⇒ Faraday::Connection

Returns:

  • (Faraday::Connection)


7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/finapps_core/rest/connection.rb', line 7

def faraday(config, logger)
  options = {
    url: "#{config.host}/v#{Defaults::API_VERSION}/",
    request: {open_timeout: config.timeout,
              timeout: config.timeout}
  }

  Faraday.new(options) do |conn|
    conn.request :accept_json
    conn.request :user_agent
    conn.request :tenant_authentication, config.tenant_token unless config.valid_user_credentials?
    conn.request :json
    conn.request :retry
    conn.request :multipart
    conn.request :url_encoded
    conn.request :no_encoding_basic_authentication, config.user_token if config.valid_user_credentials?
    conn.request :request_id, config.request_id if config.request_id

    conn.use FinAppsCore::Middleware::RaiseError
    conn.response :rashify if config.rashify
    conn.response :json, content_type: /\bjson$/
    conn.response :custom_logger, logger, bodies: (ENV['SILENT_LOG_BODIES'] != 'true')

    # Adapter (ensure that the adapter is always last.)
    conn.adapter :typhoeus
  end
end