{{/*

  Render the parameters of a given type, given:

  * `parameters`: OpenAPI/Swagger data specifying the parameters
  * `type`: the type of parameters to render: "header, ""path", "query"
  * `caption`: caption to use for the table

  This template renders a single table containing parameters of the given type.

*/}}

{{ $parameters := .parameters }}
{{ $type := .type }}
{{ $caption := .caption }}

{{ $parameters_of_type := where $parameters "in" $type }}

{{ with $parameters_of_type }}

    {{/* convert parameters into the format that render-object-table expects to see */}}
    {{ $param_dict := dict }}
    {{ range $parameter := . }}
        {{ $param_dict = merge $param_dict (dict $parameter.name (dict "type" $parameter.type "description" $parameter.description "required" $parameter.required "enum" $parameter.enum)  )}}
    {{ end }}

    {{/* and render the parameters */}}
    {{ partial "openapi/render-object-table" (dict "caption" $caption "properties" $param_dict) }}

{{ end }}
