Current section

Files

Jump to
pow lib extensions email_confirmation ecto context.ex
Raw

lib/extensions/email_confirmation/ecto/context.ex

defmodule PowEmailConfirmation.Ecto.Context do
@moduledoc false
use Pow.Extension.Ecto.Context.Base
alias Pow.Config
@spec get_by_confirmation_token(Config.t(), binary()) :: map() | nil
def get_by_confirmation_token(config, token) do
user_mod = user_schema_mod(config)
repo = repo(config)
repo.get_by(user_mod, email_confirmation_token: token)
end
@spec confirm_email(Config.t(), map()) :: {:ok, map()} | {:error, Changeset.t()}
def confirm_email(config, user) do
repo = repo(config)
case user.email_confirmed_at do
nil ->
user
|> Ecto.Changeset.change(email_confirmed_at: DateTime.utc_now())
|> repo.update()
_email_confirmed_at ->
{:ok, user}
end
end
end