diff --git a/lib/claper/accounts/leader_notifier.ex b/lib/claper/accounts/leader_notifier.ex index 9587dbe..3c68fdc 100644 --- a/lib/claper/accounts/leader_notifier.ex +++ b/lib/claper/accounts/leader_notifier.ex @@ -1,11 +1,8 @@ defmodule Claper.Accounts.LeaderNotifier do - alias Claper.Mailer 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, email} - end + {:ok, :enqueued} end end diff --git a/lib/claper/workers/mailers.ex b/lib/claper/workers/mailers.ex index a5c30e1..5884f83 100644 --- a/lib/claper/workers/mailers.ex +++ b/lib/claper/workers/mailers.ex @@ -2,7 +2,7 @@ defmodule Claper.Workers.Mailers do use Oban.Worker, queue: :mailers alias Claper.Mailer - alias ClaperWeb.Notifiers.UserNotifier + alias ClaperWeb.Notifiers.{UserNotifier, LeaderNotifier} @impl Oban.Worker 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) 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 def new_confirmation(user_id, url) do new(%{type: "confirm", user_id: user_id, url: url}) @@ -49,4 +54,8 @@ defmodule Claper.Workers.Mailers do def new_welcome(email) do new(%{type: "welcome", email: email}) end + + def event_invitation(event_name, email, url) do + new(%{type: "event_invitation", event_name: event_name, email: email, url: url}) + end end