lib/haytni_web/emails/recoverable_email.ex

defmodule Haytni.RecoverableEmail do
  import Haytni.Mail
  import Bamboo.Email
  import Haytni.Gettext

  @doc ~S"""
  Email the recovery password token to *user*
  """
  @spec reset_password_email(user :: Haytni.user, reset_password_token :: String.t, module :: module, config :: Haytni.config) :: Bamboo.Email.t
  def reset_password_email(user = %_{}, reset_password_token, module, _config) do
    new_email()
    |> to(user.email)
    |> assign(:user, user)
    |> assign(:reset_password_token, reset_password_token)
    |> from(module.mailer().from())
    |> subject(dgettext("haytni", "Reset password instructions"))
    |> put_view(module, "Email.RecoverableView")
    |> put_text_template("reset_password_instructions.text")
    |> put_html_template("reset_password_instructions.html")
  end
end