mirror of
https://github.com/ClaperCo/Claper.git
synced 2025-12-16 20:07:59 +01:00
Add mailer job for invitation
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user