Sha256: abe234df9d084cfee20ba37d29816cc103a598bc593f73979b0eada800ec6a21

Contents?: true

Size: 977 Bytes

Versions: 3

Compression:

Stored size: 977 Bytes

Contents

# frozen_string_literal: true

module RatingChgkV2
  module Connection
    BASE_URL = 'https://api.rating.chgk.net/'

    def connection(client)
      Faraday.new(options(client), request_params_for(client)) do |faraday|
        faraday.adapter Faraday.default_adapter
      end
    end

    private

    def options(client)
      headers = {
        accept: 'application/json',
        user_agent: "rating-chgk-v2 gem/#{RatingChgkV2::VERSION}",
        'Content-Type': 'application/json',
        accept_encoding: 'gzip,deflate,br'
      }

      headers = headers.merge({Authorization: "Bearer #{client.token}"}) if client.token

      {headers: headers, url: BASE_URL}
    end

    # Allows to customize request params per-client
    def request_params_for(client)
      {request: {
        timeout: client.timeout,
        open_timeout: client.open_timeout,
        params_encoder: Faraday::FlatParamsEncoder
      }}
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rating-chgk-v2-1.4.0 lib/rating_chgk_v2/connection.rb
rating-chgk-v2-1.3.0 lib/rating_chgk_v2/connection.rb
rating-chgk-v2-1.2.0 lib/rating_chgk_v2/connection.rb