Add mailer job for invitation

This commit is contained in:
Alex Lion
2024-12-22 09:46:14 -05:00
parent 093bb79b42
commit aa76c96f59
2 changed files with 12 additions and 6 deletions

View File

@@ -1,11 +1,8 @@
defmodule Claper.Accounts.LeaderNotifier do defmodule Claper.Accounts.LeaderNotifier do
alias Claper.Mailer
def deliver_event_invitation(event_name, email, url) do def deliver_event_invitation(event_name, email, url) do
e = ClaperWeb.Notifiers.LeaderNotifier.event_invitation(event_name, email, url) Claper.Workers.Mailers.event_invitation(event_name, email, url) |> Oban.insert()
with {:ok, _metadata} <- Mailer.deliver(e) do {:ok, :enqueued}
{:ok, email}
end
end end
end end

View File

@@ -2,7 +2,7 @@ defmodule Claper.Workers.Mailers do
use Oban.Worker, queue: :mailers use Oban.Worker, queue: :mailers
alias Claper.Mailer alias Claper.Mailer
alias ClaperWeb.Notifiers.UserNotifier alias ClaperWeb.Notifiers.{UserNotifier, LeaderNotifier}
@impl Oban.Worker @impl Oban.Worker
def perform(%Oban.Job{args: %{"type" => type, "user_id" => user_id, "url" => url}}) def perform(%Oban.Job{args: %{"type" => type, "user_id" => user_id, "url" => url}})
@@ -29,6 +29,11 @@ defmodule Claper.Workers.Mailers do
Mailer.deliver(email) Mailer.deliver(email)
end end
def perform(%Oban.Job{args: %{"type" => "event_invitation", "event_name" => event_name, "email" => email, "url" => url}}) do
email = LeaderNotifier.event_invitation(event_name, email, url)
Mailer.deliver(email)
end
# Helper functions to create jobs # Helper functions to create jobs
def new_confirmation(user_id, url) do def new_confirmation(user_id, url) do
new(%{type: "confirm", user_id: user_id, url: url}) new(%{type: "confirm", user_id: user_id, url: url})
@@ -49,4 +54,8 @@ defmodule Claper.Workers.Mailers do
def new_welcome(email) do def new_welcome(email) do
new(%{type: "welcome", email: email}) new(%{type: "welcome", email: email})
end end
def event_invitation(event_name, email, url) do
new(%{type: "event_invitation", event_name: event_name, email: email, url: url})
end
end end