Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- defmodule EmailValidator do
- # ensure that the email looks valid
- def validate_email(email) when is_binary(email) do
- case Regex.run(~r/^[A-Za-z0-9._%+-+']+@[A-Za-z0-9.-]+\.[A-Za-z]+$/, email) do
- nil ->
- {:error, "Invalid email"}
- [email] ->
- try do
- Regex.run(~r/(\w+)@([\w.]+)/, email) |> validate_email
- rescue
- _ -> {:error, "Invalid email"}
- end
- end
- end
- # check the email against a list of accepted domains, then make check if it is unique
- def validate_email([email, username, host]) do
- case host in Config.accepted_domains do
- true ->
- case find_by_email(email) do
- nil -> :ok
- _account -> :account
- end
- _ ->
- {:error, "Not an accepted domain."}
- end
- end
- end
Add Comment
Please, Sign In to add comment