4f73d61bc8b219e559c1bf2f5d1cdf3bbdcfe8b4
[akkoma] / lib / pleroma / workers / mailer_worker.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Workers.MailerWorker do
6 alias Pleroma.User
7
8 # Note: `max_attempts` is intended to be overridden in `new/2` call
9 use Oban.Worker,
10 queue: "mailer",
11 max_attempts: 1
12
13 @impl Oban.Worker
14 def perform(%{"op" => "email", "encoded_email" => encoded_email, "config" => config}, _job) do
15 encoded_email
16 |> Base.decode64!()
17 |> :erlang.binary_to_term()
18 |> Pleroma.Emails.Mailer.deliver(config)
19 end
20
21 def perform(%{"op" => "digest_email", "user_id" => user_id}, _job) do
22 user_id
23 |> User.get_cached_by_id()
24 |> Pleroma.DigestEmailWorker.perform()
25 end
26 end