Skip to content

Commit

Permalink
Fixes instantiating Client in Manticore implementation.
Browse files Browse the repository at this point in the history
Backport from elastic-transport
elastic/elastic-transport-ruby#69
  • Loading branch information
picandocodigo committed Sep 26, 2023
1 parent 6fde526 commit bd10a6b
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,11 @@ def build_client(options = {})
def perform_request(method, path, params={}, body=nil, headers=nil, opts={})
super do |connection, url|
body = body ? __convert_to_json(body) : nil
body, headers = compress_request(body, @request_options[:headers])
body, headers = compress_request(body, parse_headers(headers))

params[:body] = body if body
params[:headers] = headers if headers
params = params.merge(@request_options)

case method
when 'GET'
resp = connection.connection.get(url, params)
Expand Down Expand Up @@ -161,6 +161,12 @@ def host_unreachable_exceptions

private

def parse_headers(headers)
request_headers = @request_options.fetch(:headers, {})
headers = request_headers.merge(headers || {})
headers.empty? ? nil : headers
end

def apply_headers(options)
headers = options[:headers] || options.dig(:transport_options, :headers) || {}
headers[CONTENT_TYPE_STR] = find_value(headers, CONTENT_TYPE_REGEX) || DEFAULT_CONTENT_TYPE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
expect(perform_request).to be_kind_of(Elasticsearch::Transport::Transport::Response)
end

it 'run body with preper params' do
it 'run body with proper params' do
expect(
client.transport.connections.first.connection
).to receive(:post).with('http://localhost:9200/', { body: body, headers: expected_headers }).and_return(response)
Expand Down Expand Up @@ -137,6 +137,24 @@
client.perform_request('POST', '/', {}, nil, headers)
end
end

context 'headers' do
it 'sends custom headers' do
client = Elasticsearch::Transport::Client.new(
transport_class: described_class,
transport_options: { headers: { 'Elastic-Api-Version'=>'2023-10-31' } }
)
expect(
client.transport.connections.first.connection
).to receive(:get).with(
'http://localhost:9200/',
{
headers: expected_headers.merge({ 'Elastic-Api-Version'=>'2023-10-31' })
}
).and_return(response)
client.perform_request('GET', '/', {}, nil, headers)
end
end
end
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ def common_headers
{
body: '{"foo":"bar"}',
headers: {
'Content-Type' => 'application/json',
'Content-Type' => 'application/x-ndjson',
'User-Agent' => @transport.send(:user_agent_header)
}
}
Expand Down

0 comments on commit bd10a6b

Please sign in to comment.