Current section
Files
Jump to
Current section
Files
priv/templates/concierge.install/model.ex
defmodule <%= module %> do
use <%= base %>.Web, :model
schema <%= inspect plural %> do
field :email, :string
field :encrypted_password, :string
field :password, :string, virtual: true
field :password_confirmation, :string, virtual: true
timestamps
end
@required_fields ~w(email password password_confirmation)
@optional_fields ~w()
@doc """
Creates a changeset based on the `model` and `params`.
If `params` are nil, an invalid changeset is returned
with no validation performed.
"""
def changeset(model, params \\ :empty) do
model
|> cast(params, @required_fields, @optional_fields)
|> update_change(:email, &String.downcase/1)
|> unique_constraint(:email)
|> validate_format(:email, email_regexp)
|> validate_length(:password, min: 8)
|> validate_confirmation(:password)
end
defp email_regexp, do: ~r/\A[^@\s]+@([^@\s]+\.)+[^@\W]+\z/
end