% callback = false if callback.nil? %>
<% if endpoint.parameters.select { |p| p.in == 'header'}.any? %>
Header Parameters
<%= erb :'open_api/_parameters', locals: { parameters: endpoint.parameters.select { |p| p.in == 'header' }, callback: callback } %>
<% end %>
<% if endpoint.path_parameters.any? %>
Path Parameters
<%= erb :'open_api/_parameters', locals: { parameters: endpoint.path_parameters, callback: callback } %>
<% end %>
<% if endpoint.query_parameters.any? %>
Query Parameter
<%= erb :'open_api/_parameters', locals: { parameters: endpoint.query_parameters, callback: callback } %>
<% end %>
<% if endpoint.request_body %>
<% format = endpoint.request_body.formats[0] %>
Request body
<%= format %>
<% if endpoint.request_body.description %>
<%= endpoint.request_body.description.render_markdown %>
<% end %>
<% unless endpoint.request_body.exhibits_one_of_multiple_schemas?(format) %>
<%
# @mheap: This is hacky handling for allOf, but it works for now
# We probably want real allOf support in OasParser, but that's more time than I have right now
allOf = endpoint.request_body.content[format]['schema']['allOf']
if allOf
params = allOf.reduce { |a,b| a.deep_merge(b) }
params = params['properties'].map do |name, definition|
OasParser::Property.new(nil, params, name, definition)
end
else
params = endpoint.request_body.properties_for_format(format)
end
if params
%>
<%= erb :'open_api/_parameters', locals: { parameters: params, callback: callback } %>
<% end %>
<% else %>
<%
# This can likely be better done as a presenter, but it works for now
schema = endpoint.request_body.content[format]['schema']['oneOf']
%>
<%= erb :'open_api/_tabbed_parameters', locals: { body: endpoint.request_body, schema: schema, format: format, callback: callback } %>
<%
end
end
%>