Packages
moon
2.87.2
2.90.5
retired
2.90.4
2.90.3
2.90.2
2.90.1
2.90.0
2.89.4
2.89.1
2.89.0
2.88.0
2.87.11
2.87.10
2.87.9
2.87.8
2.87.7
2.87.6
2.87.5
2.87.4
2.87.3
2.87.2
2.87.1
2.87.0
2.86.1
2.86.0
2.85.1
2.85.0
2.84.0
2.83.0
2.82.0
2.81.4
2.81.3
2.81.2
2.81.1
2.81.0
2.80.2
2.80.1
2.80.0
2.79.13
2.79.12
2.79.11
2.79.10
2.79.9
2.79.8
2.79.7
2.79.6
2.79.5
2.79.4
2.79.3
2.79.2
2.79.1
2.79.0
2.78.4
2.78.3
2.78.2
2.78.1
2.78.0
2.77.0
2.76.5
2.76.4
2.76.3
2.76.2
2.76.1
2.76.0
2.75.0
2.74.1
2.74.0
2.73.8
2.73.7
2.73.6
2.73.5
2.73.4
2.73.3
2.73.2
2.73.1
2.73.0
2.72.5
2.72.4
2.72.3
2.72.2
2.72.1
2.72.0
2.71.1
2.71.0
2.70.0
2.69.2
2.69.1
2.69.0
2.68.11
2.68.10
Components-based design system written in elixir
Current section
Files
Jump to
Current section
Files
lib/moon_web/schema/dates.ex
defmodule MoonWeb.Schema.Dates do
@moduledoc false
use Ecto.Schema
import Ecto.Changeset
import MoonWeb.Gettext, only: [gettext: 1]
embedded_schema do
field(:date_from, :date)
field(:date_to, :date)
end
@required_params ~w(date_from date_to)a
def create_changeset(params) do
%__MODULE__{}
|> cast(params, @required_params)
|> validate_required(@required_params, message: gettext("can't be blank"))
|> validate_range()
end
defp validate_range(changeset) do
date_from = get_field(changeset, :date_from)
date_to = get_field(changeset, :date_to)
cond do
is_nil(date_from) or is_nil(date_to) ->
changeset
Timex.compare(date_from, date_to) == 1 ->
add_error(
changeset,
:date_to,
gettext("lower bound must be less than upper bound or equal")
)
true ->
changeset
end
end
end