Module: FinAppsCore::REST::Connection

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

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.connection_options(config) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/finapps_core/rest/connection.rb', line 35

def connection_options(config)
  {
    url: "#{config.host}/v#{Defaults::API_VERSION}/",
    request: { open_timeout: config.timeout,
               timeout: config.timeout }
  }
end

.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
# File 'lib/finapps_core/rest/connection.rb', line 7

def faraday(config, logger)
  options = connection_options config

  Faraday.new(options) do |conn|
    conn.request :accept_json
    conn.request :user_agent
    if config.valid_user_credentials?
      conn.request :no_encoding_basic_authentication, config.user_token
    else
      conn.request :tenant_authentication, config.tenant_token
    end
    conn.request :json
    conn.request :retry
    conn.request :multipart
    conn.request :url_encoded
    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 :logger, logger, bodies: true

    # Adapter (ensure that the adapter is always last.)
    conn.adapter Faraday.default_adapter
  end
end