Current section
Files
Jump to
Current section
Files
lib/object/parameter.ex
defmodule QuenyaParser.Object.Parameter do
@moduledoc """
Parameter object
"""
use TypedStruct
alias QuenyaParser.Object.{Parameter, Util}
typedstruct do
@typedoc "Parameter object from the spec"
field(:description, String.t(), default: "")
field(:position, String.t(), enforce: true)
field(:name, String.t(), enforce: true)
field(:required, boolean(), enforce: true, default: false)
field(:schema, ExJsonSchema.Schema.Root)
field(:deprecated, boolean(), default: false)
field(:style, String.t(), default: "simple")
field(:explode, boolean(), default: false)
field(:examples, list(map()))
end
def new(id, data) do
name =
data["name"] || raise "Shall define name in the request parameters. data: #{inspect(data)}"
position = Util.ensure_position(data["in"])
%Parameter{
description: data["description"] || "",
name: name,
position: position,
required: data["required"] || false,
schema: Util.get_schema(id, "request parameters", name, data),
deprecated: data["deprecated"] || false,
style: Util.ensure_param_style(data["style"], position),
explode: data["explode"] || false,
examples: Util.get_examples(data)
}
end
end