<%-
case @endpoint_name
when 'mtermvectors'
-%>
  if ids
    body = { :ids => ids }
  else
    body = arguments[:body]
  end
<%- when 'cluster.reroute', 'cluster.put_settings' %>
  body = arguments[:body] || {}
<%- when 'ml.find_file_structure' %>
  body = <%= __utils %>.__bulkify(arguments.delete(:body))
<%- else -%>
  <%= '  '*(@namespace_depth+3) %>body   = <%= @spec['body'].nil? ? 'nil' : 'arguments[:body]' %>
<%- end -%>
<%- if ['bulk', 'msearch', 'msearch_template'].include? @method_name -%>
  <%= self.send("#{@method_name}_body_helper".to_s) %>
  headers.merge!("Content-Type" => "application/x-ndjson")
  <%= '  '*(@namespace_depth+4) %>perform_request(method, path, params, payload, headers).body
<%- elsif @method_name == 'ping' -%>
  <%= ping_perform_request %>
<%- else -%>
  <%- if needs_ignore_404?(@endpoint_name) %>
    <%= __utils %>.__rescue_from_not_found do
      perform_request(method, path, params, body, headers).status == 200 ? true : false
    end
  <%- elsif needs_complex_ignore_404?(@endpoint_name) -%>
    if Array(arguments[:ignore]).include?(404)
      <%= __utils %>.__rescue_from_not_found { perform_request(method, path, params, body, headers).body }
    else
      perform_request(method, path, params, body, headers).body
    end
  <%- else -%>
      perform_request(method, path, params, body, headers).body
  <%- end -%>
<%- end -%>
<%= '  '*(@namespace_depth+3) %>end
