X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fpleroma%2Fworkers%2Freceiver_worker.ex;h=9c3d8d1c2b87b096cddce3a02598e87e14a66a40;hb=13d943667ee5c931772af2bbbe5642d91a882881;hp=cdce630f2e0f745cc0aff7fdb26e26ec8d99fea1;hpb=a90ea8ba1562818b025f677ffeea35f7ca08ddf2;p=akkoma diff --git a/lib/pleroma/workers/receiver_worker.ex b/lib/pleroma/workers/receiver_worker.ex index cdce630f2..9c3d8d1c2 100644 --- a/lib/pleroma/workers/receiver_worker.ex +++ b/lib/pleroma/workers/receiver_worker.ex @@ -1,21 +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