Sha256: e6934b4686885aadbe0c87e509691573bcf5c40917f9125a410b083685e508cf

Contents?: true

Size: 751 Bytes

Versions: 4

Compression:

Stored size: 751 Bytes

Contents

# frozen_string_literal: true

module Ivapi
  class Client
    class Base
      attr_reader :client

      def initialize(client)
        @client = client
      end

      def get(path, options = {})
        request(:get, path, options).body
      end

      private

      def request(method, path, options = {})
        options.merge!(client.authentication)

        response = connection.send(method) do |request|
          request.url(path, options)
        end
        response
      end

      def connection(_options = {})
        conn_opts = client.connection_options
        conn_opts[:url] = client.api_endpoint
        conn_opts[:builder] = client.middleware if client.middleware

        Faraday.new(conn_opts)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ivapi-1.8.0 lib/ivapi/client/base.rb
ivapi-1.7.0 lib/ivapi/client/base.rb
ivapi-1.6.1 lib/ivapi/client/base.rb
ivapi-1.6.0 lib/ivapi/client/base.rb