elasticsearch-api/utils/thor/templates/_perform_request.erb (50 lines of code) (raw):
<%#
# Licensed to Elasticsearch B.V. under one or more contributor
# license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright
# ownership. Elasticsearch B.V. licenses this file to you under
# the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
%>
<%- if ['bulk', 'msearch', 'msearch_template', 'find_structure'].include? @spec.method_name -%>
<%= self.send("#{@spec.method_name}_body_helper".to_s) %>
headers.merge!("Content-Type" => "application/x-ndjson")
Elasticsearch::API::Response.new(
perform_request(method, path, params, payload, headers, request_opts)
)
<%- elsif @spec.method_name == 'ping' -%>
<%= ping_perform_request %>
<%- else -%>
<%- if needs_ignore_404?(@spec.endpoint_name) %>
Utils.__rescue_from_not_found do
perform_request(method, path, params, body, headers, request_opts).status == 200 ? true : false
end
<%- elsif needs_complex_ignore_404?(@spec.endpoint_name) -%>
if Array(arguments[:ignore]).include?(404)
Utils.__rescue_from_not_found {
Elasticsearch::API::Response.new(
perform_request(method, path, params, body, headers, request_opts)
)
}
else
Elasticsearch::API::Response.new(
perform_request(method, path, params, body, headers, request_opts)
)
end
<%- else -%>
Elasticsearch::API::Response.new(
perform_request(method, path, params, body, headers, request_opts)
)
<%- end -%>
<%- end -%>
end