Sha256: 5b2d79cc9ff02e84b7217a198953cbf9c6b758289a84cd4b0af8eeee8e780147

Contents?: true

Size: 1.27 KB

Versions: 8

Compression:

Stored size: 1.27 KB

Contents

# frozen_string_literal: true
module FinAppsCore
  module REST
    module Connection # :nodoc:
      # @return [Faraday::Connection]
      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.use FinAppsCore::Middleware::RaiseError
          conn.response :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
      module_function :faraday # becomes available as a *private instance method* to classes that mix in the module
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
finapps_core-2.0.20 lib/finapps_core/rest/connection.rb
finapps_core-2.0.19 lib/finapps_core/rest/connection.rb
finapps_core-2.0.18 lib/finapps_core/rest/connection.rb
finapps_core-2.0.17 lib/finapps_core/rest/connection.rb
finapps_core-2.0.16 lib/finapps_core/rest/connection.rb
finapps_core-2.0.15 lib/finapps_core/rest/connection.rb
finapps_core-2.0.14 lib/finapps_core/rest/connection.rb
finapps_core-2.0.13 lib/finapps_core/rest/connection.rb