Sha256: ab568246a1f24f6f218b00a800c8bab7bceb9be8f87049acceea5a4fd1a162b6

Contents?: true

Size: 873 Bytes

Versions: 10

Compression:

Stored size: 873 Bytes

Contents

# frozen_string_literal: true

module Prefab
  class HttpConnection
    AUTH_USER = 'authuser'
    PROTO_HEADERS = { 'Content-Type' => 'application/x-protobuf', 'Accept' => 'application/x-protobuf' }.freeze

    def initialize(api_root, api_key)
      @api_root = api_root
      @api_key = api_key
    end

    def get(path)
      connection.get(path)
    end

    def post(path, body)
      connection(PROTO_HEADERS).post(path, body.to_proto)
    end

    def connection(headers = {})
      if Faraday::VERSION[0].to_i >= 2
        Faraday.new(@api_root) do |conn|
          conn.request :authorization, :basic, AUTH_USER, @api_key

          conn.headers.merge!(headers)
        end
      else
        Faraday.new(@api_root) do |conn|
          conn.request :basic_auth, AUTH_USER, @api_key

          conn.headers.merge!(headers)
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
prefab-cloud-ruby-0.24.4 lib/prefab/http_connection.rb
prefab-cloud-ruby-0.24.3 lib/prefab/http_connection.rb
prefab-cloud-ruby-0.24.2 lib/prefab/http_connection.rb
prefab-cloud-ruby-0.24.1 lib/prefab/http_connection.rb
prefab-cloud-ruby-0.24.0 lib/prefab/http_connection.rb
prefab-cloud-ruby-0.23.8 lib/prefab/http_connection.rb
prefab-cloud-ruby-0.23.7 lib/prefab/http_connection.rb
prefab-cloud-ruby-0.23.6 lib/prefab/http_connection.rb
prefab-cloud-ruby-0.23.5 lib/prefab/http_connection.rb
prefab-cloud-ruby-0.23.4 lib/prefab/http_connection.rb