Current section

Files

Jump to
elx_validation lib rules min.ex
Raw

lib/rules/min.ex

defmodule ElxValidation.Min do
@moduledoc """
### min:value
- The field under validation must have a minimum value. Strings and numerics are evaluated in the same fashion as the
size rule.
```
data = %{
name: "john",
age: 19 ---> return error minimum value is 20
}
rules = [
%{
field: "name",
validate: ["min:3"]
},
%{
field: "age",
validate: ["min:20"]
}
]
```
"""
@doc """
check value min size
- min : 3 / value 4 -> passed
- min : 3 / value "hello" -> failed (hello is 5 char > 3)
- value is string and convert to number
"""
def is_minimum(target, value) do
cond do
is_bitstring(target) -> String.length(target) >= String.to_integer(value)
is_integer(target) -> target >= String.to_integer(value)
true -> false
end
rescue
_ ->
false
end
end