X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fworkers%2Freceiver_worker.ex;h=9c3d8d1c2b87b096cddce3a02598e87e14a66a40;hb=a079ec3a3cdfd42d2cbd51c7698c2c87828e5778;hp=3cc415ce411379fd0511741064d9b1afb2ac70bd;hpb=dd017c65a4b86501c435f5cb01804300e6b7c6dd;p=akkoma
diff --git a/lib/pleroma/workers/receiver_worker.ex b/lib/pleroma/workers/receiver_worker.ex
index 3cc415ce4..9c3d8d1c2 100644
--- a/lib/pleroma/workers/receiver_worker.ex
+++ b/lib/pleroma/workers/receiver_worker.ex
@@ -1,23 +1,20 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2019 Pleroma Authors
+# Copyright © 2017-2021 Pleroma Authors
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Workers.ReceiverWorker do
alias Pleroma.Web.Federator
- # Note: `max_attempts` is intended to be overridden in `new/2` call
- use Oban.Worker,
- queue: "federator_incoming",
- max_attempts: 1
-
use Pleroma.Workers.WorkerHelper, queue: "federator_incoming"
@impl Oban.Worker
- def perform(%{"op" => "incoming_doc", "body" => doc}, _job) do
- Federator.perform(:incoming_doc, doc)
- end
-
- def perform(%{"op" => "incoming_ap_doc", "params" => params}, _job) do
- Federator.perform(:incoming_ap_doc, params)
+ def perform(%Job{args: %{"op" => "incoming_ap_doc", "params" => params}}) do
+ with {:ok, res} <- Federator.perform(:incoming_ap_doc, params) do
+ {:ok, res}
+ else
+ {:error, :origin_containment_failed} -> {:discard, :origin_containment_failed}
+ {:error, {:reject, reason}} -> {:discard, reason}
+ e -> e
+ end
end
end