Packages

A simple wrapper around any data, to be used in `axrepo`.

Current section

Files

Jump to
axentity lib persitable impl validators.ex
Raw

lib/persitable/impl/validators.ex

defmodule Altex.Persistable.Validators do
@moduledoc false
alias Altex.Entity
@spec validate_greater_or_equal_than(Entity.t(), Keyword.t()) :: Entity.t()
def validate_greater_or_equal_than(entity, max_values) do
errors =
Enum.reduce(max_values, entity.errors, fn {field, max_value}, errs ->
if Entity.get(entity, field) < max_value,
do: Keyword.put(errs, field, {:cant_be_less_than, max_value}),
else: errs
end)
%{entity | errors: errors}
end
@spec validate_presence(Entity.t(), list(atom)) :: Entity.t()
def validate_presence(entity, keys) do
errors =
Enum.reduce(keys, entity.errors, fn key, errs ->
if is_nil(Entity.get(entity, key)),
do: Keyword.put(errs, key, :cant_be_empty),
else: errs
end)
%{entity | errors: errors}
end
end