Ecto Commons v0.1.0 EctoCommons.PostalCodeValidator View Source

Valide the postal code within a country context.

For now, only a few countries are supported:

  • France
  • Belgium
  • Italy
  • Spain
  • Switzerland
  • United Kingdom

Examples

iex> types = %{postal_code: :string}
iex> params = %{postal_code: "69001"}
iex> Ecto.Changeset.cast({%{}, types}, params, Map.keys(types))
...> |> validate_postal_code(:postal_code, country: "fr")
#Ecto.Changeset<action: nil, changes: %{postal_code: "69001"}, errors: [], data: %{}, valid?: true>

iex> types = %{postal_code: :string}
iex> params = %{postal_code: "1120"}
iex> Ecto.Changeset.cast({%{}, types}, params, Map.keys(types))
...> |> validate_postal_code(:postal_code, country: "be")
#Ecto.Changeset<action: nil, changes: %{postal_code: "1120"}, errors: [], data: %{}, valid?: true>

iex> types = %{postal_code: :string}
iex> params = %{postal_code: "00199"}
iex> Ecto.Changeset.cast({%{}, types}, params, Map.keys(types))
...> |> validate_postal_code(:postal_code, country: "it")
#Ecto.Changeset<action: nil, changes: %{postal_code: "00199"}, errors: [], data: %{}, valid?: true>

iex> types = %{postal_code: :string}
iex> params = %{postal_code: "28010"}
iex> Ecto.Changeset.cast({%{}, types}, params, Map.keys(types))
...> |> validate_postal_code(:postal_code, country: "es")
#Ecto.Changeset<action: nil, changes: %{postal_code: "28010"}, errors: [], data: %{}, valid?: true>

iex> types = %{postal_code: :string}
iex> params = %{postal_code: "1211"}
iex> Ecto.Changeset.cast({%{}, types}, params, Map.keys(types))
...> |> validate_postal_code(:postal_code, country: "ch")
#Ecto.Changeset<action: nil, changes: %{postal_code: "1211"}, errors: [], data: %{}, valid?: true>

Link to this section Summary

Link to this section Functions

Link to this function

validate_postal_code(changeset, field, opts \\ [])

View Source