Packages
eview
0.16.0
0.16.0
retired
0.15.0
0.14.0
0.13.0
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.1
0.11.0
0.10.8
0.10.7
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.0
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.0
0.5.2
0.5.1
0.5.0
0.4.0
0.3.0
0.2.9
0.2.7
0.2.6
0.2.5
0.2.3
0.2.2
0.2.1
0.2.0
0.1.1
0.1.0
Plug that converts response to Nebo #15 API spec format.
Retired package: Brea
king chages did not bump semver major component
Current section
Files
Jump to
Current section
Files
lib/eview/changeset/validators/card_number.ex
if Code.ensure_loaded?(Ecto) and Code.ensure_loaded?(CreditCard) do
defmodule EView.Changeset.Validators.CardNumber do
@moduledoc """
This helper validates card number by luhn algorithm.
"""
import Ecto.Changeset
@allowed_card_types [:visa, :master_card]
def validate_card_number(changeset, field, opts \\ []) do
allowed_card_types = opts[:allowed_card_types] || @allowed_card_types
validate_change(changeset, field, :credit_card, fn _, value ->
if CreditCard.valid?(value, %{allowed_card_types: allowed_card_types}),
do: [],
else: [
{field,
{message(opts, "is not a valid card number"),
[validation: :card_number, allowed_card_types: allowed_card_types]}}
]
end)
end
defp message(opts, key \\ :message, default) do
Keyword.get(opts, key, default)
end
end
end