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
|
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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user