|
defmodule MedicalTranscription.Accounts.UserNotifier do |
|
@moduledoc """ |
|
Email notifications for user management |
|
""" |
|
|
|
import Swoosh.Email |
|
|
|
alias MedicalTranscription.Mailer |
|
|
|
|
|
defp deliver(recipient, subject, body) do |
|
email = |
|
new() |
|
|> to(recipient) |
|
|> from({"MedicalTranscription", "contact@example.com"}) |
|
|> subject(subject) |
|
|> text_body(body) |
|
|
|
with {:ok, _metadata} <- Mailer.deliver(email) do |
|
{:ok, email} |
|
end |
|
end |
|
|
|
@doc """ |
|
Deliver instructions to confirm account. |
|
""" |
|
def deliver_confirmation_instructions(user, url) do |
|
deliver(user.email, "Confirmation instructions", """ |
|
|
|
============================== |
|
|
|
Hi #{user.email}, |
|
|
|
You can confirm your account by visiting the URL below: |
|
|
|
#{url} |
|
|
|
If you didn't create an account with us, please ignore this. |
|
|
|
============================== |
|
""") |
|
end |
|
|
|
@doc """ |
|
Deliver instructions to reset a user password. |
|
""" |
|
def deliver_reset_password_instructions(user, url) do |
|
deliver(user.email, "Reset password instructions", """ |
|
|
|
============================== |
|
|
|
Hi #{user.email}, |
|
|
|
You can reset your password by visiting the URL below: |
|
|
|
#{url} |
|
|
|
If you didn't request this change, please ignore this. |
|
|
|
============================== |
|
""") |
|
end |
|
|
|
@doc """ |
|
Deliver instructions to update a user email. |
|
""" |
|
def deliver_update_email_instructions(user, url) do |
|
deliver(user.email, "Update email instructions", """ |
|
|
|
============================== |
|
|
|
Hi #{user.email}, |
|
|
|
You can change your email by visiting the URL below: |
|
|
|
#{url} |
|
|
|
If you didn't request this change, please ignore this. |
|
|
|
============================== |
|
""") |
|
end |
|
end |
|
|