Class: VectorAmp::Transport::HTTP

Inherits:
Base
  • Object
show all
Defined in:
lib/vector_amp/transport/http.rb

Constant Summary collapse

DEFAULT_TIMEOUT =
60

Instance Method Summary collapse

Constructor Details

#initialize(base_url:, api_key:, timeout: DEFAULT_TIMEOUT) ⇒ HTTP

Returns a new instance of HTTP.



15
16
17
18
19
# File 'lib/vector_amp/transport/http.rb', line 15

def initialize(base_url:, api_key:, timeout: DEFAULT_TIMEOUT)
  @base_uri = URI(base_url)
  @api_key = api_key
  @timeout = timeout
end

Instance Method Details

#request(method, path, query: nil, body: nil, headers: {}, stream: false, raw: false, &block) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/vector_amp/transport/http.rb', line 21

def request(method, path, query: nil, body: nil, headers: {}, stream: false, raw: false, &block)
  uri = build_uri(path, query)
  request = build_request(method, uri, body, headers)

  Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https", open_timeout: @timeout, read_timeout: @timeout) do |http|
    if stream
      return stream_response(http, request, &block)
    end

    response = http.request(request)
    handle_response(response, raw: raw)
  end
end