Class: Qdrant::Client::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/qdrant/client/request.rb

Instance Method Summary collapse

Constructor Details

#initialize(uri, verb, body, api_key, logger) ⇒ Request

Returns a new instance of Request.



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/qdrant/client/request.rb', line 47

def initialize(uri, verb, body, api_key, logger)
  @logger = logger
  @uri = uri
  @verb = verb

  @data = verb.new(uri.request_uri).tap do |request|
    request["api-key"] = api_key if api_key

    if body
      request.body = JSON.generate(body)
      request["Content-Type"] = request["Accept"] = "application/json"
    end
  end

  logger.info("#{verb_name} #{uri}")
  logger.info("Request headers: #{redacted_headers.inspect}")
  logger.info("Request body: #{@data.body}") if @data.body
end

Instance Method Details

#perform(raise_error) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/qdrant/client/request.rb', line 66

def perform(raise_error)
  @logger.info("Performing Request: #{verb_name} #{@uri}")

  response = Net::HTTP.new(@uri.host, @uri.port).tap do |h|
    h.use_ssl = true if @uri.scheme == "https"
  end.request(@data)

  response.value if raise_error

  @logger.info("Response status: #{response.code}")
  response
rescue => e
  @logger.error("#{verb_name} #{@uri} failed: #{e.class}: #{e.message}")
  raise
end