Current section

Files

Jump to
graveyard lib graveyard orm validation date.ex
Raw

lib/graveyard/orm/validation/date.ex

defmodule Graveyard.Validators.Date do
use Vex.Validator
alias Graveyard.Support
@option_keys [
:is
]
def validate(value, options) when is_list(options) do
Enum.reduce_while(options, :ok, fn
{k, o}, _ when k in @option_keys ->
case do_validate(value, k, o) do
:ok ->
{:cont, :ok}
{:error, message} ->
{:halt, {:error, message}}
end
_, _ -> {:cont, :ok}
end)
end
defp do_validate(value, :is, true) do
case {is_binary(value), Regex.match?(Support.date_format(), value)} do
{true, true} -> :ok
_ -> {:error, "must be a valid date"}
end
end
end