Sha256: 21be1c0584455875de645e7caa2ee91e4c09bc293aea16186ffad505591cdb4d

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true

module GoPuff
  module ProdcatApi
    class Configuration
      attr_accessor :url, :authorization_client_id, :requests, :logger, :user_agent_header

      def initialize
        @requests = Struct.new(:max_retries, :retry_wait_time, :retryable_exceptions) do
          def to_h
            {
              on: retryable_exceptions,
              tries: max_retries,
              sleep: retry_wait_time
            }
          end
        end.new(3, 0.5, [GoPuff::ProdcatApi::InvalidJsonResponseError, GoPuff::ProdcatApi::HttpError])
      end

      def validate!
        raise ConfigError, 'Undefined url configuration in config/initializers/prodcat_api.rb' if url.nil?
        raise ConfigError, 'Undefined authorization_client_id configuration in config/initializers/prodcat_api.rb' if authorization_client_id.nil?
        raise ConfigError, 'Undefined logger configuration in config/initializers/prodcat_api.rb' if logger.nil?
        raise ConfigError, 'Undefined user_agent_header configuration in config/initializers/go_puff-http-client.rb' if user_agent_header.nil?
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
go_puff-prodcat_api-0.9.3.pre.beta.1 lib/go_puff/prodcat_api/configuration.rb