Packages
eview
0.3.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.
Current section
Files
Jump to
Current section
Files
lib/eview/changeset/validators/card_number.ex
if Code.ensure_loaded?(Ecto) do
defmodule EView.Changeset.CardNumberValidator 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