litmus v1.0.1 Litmus.Type.Any View Source
This type provides validation for any type of value.
Options
:default
- Setting:default
will populate a field with the provided value, assuming that it is not present already. If a field already has a value present, it will not be altered.:required
- Setting:required
totrue
will cause a validation error when a field is not present or the value isnil
. Allowed values for required aretrue
andfalse
. The default isfalse
.
Examples
iex> schema = %{"id" => %Litmus.Type.Any{required: true}}
iex> Litmus.validate(%{"id" => 1}, schema)
{:ok, %{"id" => 1}}
iex> schema = %{"id" => %Litmus.Type.Any{default: "new_id"}}
iex> Litmus.validate(%{}, schema)
{:ok, %{"id" => "new_id"}}
iex> schema = %{"id" => %Litmus.Type.Any{required: true}}
iex> Litmus.validate(%{}, schema)
{:error, "id is required"}
iex> schema = %{"id" => %Litmus.Type.Any{required: true}}
iex> Litmus.validate(%{"id" => nil}, schema)
{:error, "id is required"}