defmodule Haytni.InvitableEmail do import Haytni.Mail import Bamboo.Email import Haytni.Gettext @doc ~S""" Email an invitation In the *invitation* templates, *user* is the sender of the invitation, you have full access to it, so you can use any field from its schema so you can refer to it by its surname if you like. """ @spec invitation_email(user :: Haytni.user, invitation :: Haytni.InvitablePlugin.invitation, module :: module, config :: Haytni.config) :: Bamboo.Email.t def invitation_email(user = %_{}, invitation, module, config) do new_email() |> to(invitation.sent_to) |> assign(:user, user) |> assign(:config, config) |> assign(:invitation, invitation) |> from(module.mailer().from()) |> subject(dgettext("haytni", "You've been invited")) |> put_view(module, "Email.InvitableView") |> put_text_template("invitation.text") |> put_html_template("invitation.html") end end