mobilizon/lib/mobilizon_web/email/user.ex

57 lines
1.4 KiB
Elixir
Raw Normal View History

2019-09-17 02:45:32 +02:00
defmodule MobilizonWeb.Email.User do
@moduledoc """
2019-09-07 23:58:53 +02:00
Handles emails sent to users.
"""
2019-09-17 02:45:32 +02:00
use Bamboo.Phoenix, view: MobilizonWeb.EmailView
2019-09-07 23:58:53 +02:00
import Bamboo.Phoenix
2019-09-07 23:58:53 +02:00
import MobilizonWeb.Gettext
2019-09-17 02:45:32 +02:00
alias Mobilizon.Config
2019-09-07 23:58:53 +02:00
alias Mobilizon.Users.User
2019-09-17 02:45:32 +02:00
alias MobilizonWeb.Email
2019-09-07 23:58:53 +02:00
@spec confirmation_email(User.t(), String.t()) :: Bamboo.Email.t()
def confirmation_email(
%User{email: email, confirmation_token: confirmation_token},
locale \\ "en"
) do
Gettext.put_locale(locale)
2019-09-07 23:58:53 +02:00
subject =
gettext(
"Instructions to confirm your Mobilizon account on %{instance}",
instance: Config.instance_name()
2019-09-07 23:58:53 +02:00
)
Email.base_email(to: email, subject: subject)
|> assign(:locale, locale)
2019-09-07 23:58:53 +02:00
|> assign(:token, confirmation_token)
|> assign(:subject, subject)
|> render(:registration_confirmation)
end
2019-09-07 23:58:53 +02:00
@spec reset_password_email(User.t(), String.t()) :: Bamboo.Email.t()
def reset_password_email(
%User{email: email, reset_password_token: reset_password_token},
locale \\ "en"
) do
Gettext.put_locale(locale)
2019-09-07 23:58:53 +02:00
subject =
gettext(
"Instructions to reset your password on %{instance}",
instance: Config.instance_name()
)
2019-09-07 23:58:53 +02:00
Email.base_email(to: email, subject: subject)
|> assign(:locale, locale)
2019-09-07 23:58:53 +02:00
|> assign(:token, reset_password_token)
|> assign(:subject, subject)
|> render(:password_reset)
end
end