29
lib/eventos/actors/service/activation.ex
Normal file
29
lib/eventos/actors/service/activation.ex
Normal file
@@ -0,0 +1,29 @@
|
||||
defmodule Eventos.Actors.Service.Activation do
|
||||
@moduledoc false
|
||||
|
||||
alias Eventos.{Mailer, Repo, Actors.User, Actors}
|
||||
alias Eventos.Email.User, as: UserEmail
|
||||
|
||||
require Logger
|
||||
|
||||
@doc false
|
||||
def check_confirmation_token(token) when is_binary(token) do
|
||||
with %User{} = user <- Repo.get_by(User, confirmation_token: token) do
|
||||
Actors.update_user(user, %{"confirmed_at" => DateTime.utc_now(), "confirmation_sent_at" => nil, "confirmation_token" => nil})
|
||||
else
|
||||
_err ->
|
||||
{:error, "Invalid token"}
|
||||
end
|
||||
end
|
||||
|
||||
def resend_confirmation_email(%User{} = user, locale \\ "en") do
|
||||
{:ok, user} = Actors.update_user(user, %{"confirmation_sent_at" => DateTime.utc_now()})
|
||||
send_confirmation_email(user, locale)
|
||||
end
|
||||
|
||||
def send_confirmation_email(%User{} = user, locale \\ "en") do
|
||||
user
|
||||
|> UserEmail.confirmation_email(locale)
|
||||
|> Mailer.deliver_later()
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user