Ecto common helpers such as validators and formatters.
The package is available on hex, so it can be installed
by adding ecto_commons
to your list of dependencies in mix.exs
:
def deps do
[
{:ecto_commons, "~> 0.3.4"}
]
end
In order to check whether URLs are parseable, this library requires either a recent (>= 1.13.0) of Elixir, or an older (< 26) version of OTP.
Documentation is published on HexDocs and can be found at https://hexdocs.pm/ecto_commons.
The package contains common ecto helpers:
-
EctoCommons.DateValidator
:-
validate_date(changeset, field, opts)
: validates an equality (with approximation), before or after a given date.
-
-
EctoCommons.DateTimeValidator
-
validate_datetime(changeset, field, opts)
: validates an equality (with approximation), before or after a given date time.
-
-
EctoCommons.TimeValidator
-
validate_time(changeset, field, opts)
: validates an equality (with approximation), before or after a given time.
-
-
EctoCommons.EmailValidator
-
validate_email(changeset, field, opts)
: validates emails. As there is no perfect validation possible, multiple options are available depending on your requirements. Can also reject temporary/burner emails.
-
-
EctoCommons.URLValidator
-
validate_url(changeset, field, opts)
: validates if an URL is correct. Here too, there is no perfection possible. Multiple options are available depending on the precision required.
-
-
EctoCommons.StringValidator
-
validate_has_prefix(changeset, field, opts)
: validates if a string starts with a given prefix. The prefix itself can depend on another field or on a dynamic value.
-
-
EctoCommons.PostalCodeValidator
-
validate_postal_code(changeset, field, opts)
: validates postal code formatting using regular expressions depending on the country. This only ensures the postal code "looks ok" but doesn't check it really exists (that will need a complete database of all postal codes worldwide).
-
-
EctoCommons.SocialSecurityValidator
-
validate_social_security(changeset, field, opts)
: validates social security numbers (SSN) depending on the country. This only validates french SSNs for now.
-
-
EctoCommons.LuhnValidator
-
validate_luhn(changeset, field, opts)
: validates a string with Luhn's algorithm such as credit card numbers and other administrative codes.
-
-
EctoCommons.PhoneNumberValidator
-
validate_phone_number(changeset, field, opts)
: validates a phone number using libphonenumber.
-
-
EctoCommons.Helpers
-
validate_many(changeset, field, opts)
: validates multiple fields with the same validation function as well as the same options.
-
ecto_commons
follows semantic versioning. See CHANGELOG.md
for more information.
Use Earthly to run tests against various versions of Elixir and Erlang.
earthly +all
MIT. Please see LICENSE for licensing details.