Sha256: 0ce3b7be7e3ead971586af1e5ac00d50ce43aec73152beab97cec3d0806fc9a1

Contents?: true

Size: 1.33 KB

Versions: 21

Compression:

Stored size: 1.33 KB

Contents

require 'faraday'
require 'faraday_middleware'
require 'faraday/detailed_logger'
require 'netbox_client_ruby/error/local_error'

module NetboxClientRuby
  class Connection
    DEFAULT_OPTIONS = {
      request_encoding: :json
    }.freeze

    def self.new(options = {})
      build_faraday(DEFAULT_OPTIONS.merge(options))
    end

    def self.headers
      headers = {}
      auth_token = auth_config.token
      headers['Authorization'] = "Token #{auth_token}".freeze if auth_token
      headers['X-Session-Key'] = NetboxClientRuby::Secrets.session_key if NetboxClientRuby::Secrets.session_key
      headers
    end

    def self.auth_config
      netbox_config.auth
    end

    def self.netbox_config
      NetboxClientRuby.config.netbox
    end

    private_class_method def self.build_faraday(request_encoding: :json)
      config = NetboxClientRuby.config
      Faraday.new(url: config.netbox.api_base_url, headers: headers) do |faraday|
        faraday.request request_encoding
        faraday.response config.faraday.logger if config.faraday.logger
        faraday.response :json, content_type: /\bjson$/
        faraday.options.merge NetboxClientRuby.config.faraday.request_options
        faraday.options.params_encoder = Faraday::FlatParamsEncoder
        faraday.adapter config.faraday.adapter || Faraday.default_adapter
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
netbox-client-ruby-0.5.3 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.5.2 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.5.1 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.5.0 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.4.10 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.4.9 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.4.7 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.4.6 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.4.3 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.4.2 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.4.1 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.4.0 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.3.1 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.3.0 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.2.3 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.2.2 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.2.1 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.2.0 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.1.4 lib/netbox_client_ruby/connection.rb
netbox-client-ruby-0.1.3 lib/netbox_client_ruby/connection.rb