Improve Remote Object Fetcher error handling, Oban
This commit is contained in:
parent
ee26d85578
commit
089fa4d146
5 changed files with 63 additions and 63 deletions
|
|
@ -73,50 +73,22 @@ defmodule Pleroma.Object.Fetcher do
|
|||
{:object, data, Object.normalize(activity, fetch: false)} do
|
||||
{:ok, object}
|
||||
else
|
||||
{:allowed_depth, false} = e ->
|
||||
log_fetch_error(id, e)
|
||||
{:error, :allowed_depth}
|
||||
|
||||
{:containment, reason} = e ->
|
||||
log_fetch_error(id, e)
|
||||
{:error, reason}
|
||||
|
||||
{:transmogrifier, {:error, {:reject, reason}}} = e ->
|
||||
log_fetch_error(id, e)
|
||||
{:reject, reason}
|
||||
|
||||
{:transmogrifier, {:reject, reason}} = e ->
|
||||
log_fetch_error(id, e)
|
||||
{:reject, reason}
|
||||
|
||||
{:transmogrifier, reason} = e ->
|
||||
log_fetch_error(id, e)
|
||||
{:error, reason}
|
||||
|
||||
{:object, data, nil} ->
|
||||
reinject_object(%Object{}, data)
|
||||
|
||||
{:normalize, object = %Object{}} ->
|
||||
{:ok, object}
|
||||
|
||||
{:fetch_object, %Object{} = object} ->
|
||||
{:ok, object}
|
||||
|
||||
{:fetch, {:error, reason}} = e ->
|
||||
log_fetch_error(id, e)
|
||||
{:error, reason}
|
||||
{:object, data, nil} ->
|
||||
reinject_object(%Object{}, data)
|
||||
|
||||
e ->
|
||||
log_fetch_error(id, e)
|
||||
{:error, e}
|
||||
Logger.metadata(object: id)
|
||||
Logger.error("Object rejected while fetching #{id} #{inspect(e)}")
|
||||
e
|
||||
end
|
||||
end
|
||||
|
||||
defp log_fetch_error(id, error) do
|
||||
Logger.metadata(object: id)
|
||||
Logger.error("Object rejected while fetching #{id} #{inspect(error)}")
|
||||
end
|
||||
|
||||
defp prepare_activity_params(data) do
|
||||
%{
|
||||
"type" => "Create",
|
||||
|
|
|
|||
|
|
@ -13,17 +13,26 @@ defmodule Pleroma.Workers.RemoteFetcherWorker do
|
|||
{:ok, _object} ->
|
||||
:ok
|
||||
|
||||
{:reject, reason} ->
|
||||
{:allowed_depth, false} ->
|
||||
{:cancel, :allowed_depth}
|
||||
|
||||
{:containment, reason} ->
|
||||
{:cancel, reason}
|
||||
|
||||
{:error, :forbidden} ->
|
||||
{:cancel, :forbidden}
|
||||
{:transmogrifier, reason} ->
|
||||
{:cancel, reason}
|
||||
|
||||
{:error, :not_found} ->
|
||||
{:cancel, :not_found}
|
||||
{:fetch, {:error, :forbidden = reason}} ->
|
||||
{:cancel, reason}
|
||||
|
||||
{:error, :allowed_depth} ->
|
||||
{:cancel, :allowed_depth}
|
||||
{:fetch, {:error, :not_found = reason}} ->
|
||||
{:cancel, reason}
|
||||
|
||||
{:fetch, {:error, {:content_type, _}} = reason} ->
|
||||
{:cancel, reason}
|
||||
|
||||
{:fetch, {:error, reason}} ->
|
||||
{:error, reason}
|
||||
|
||||
{:error, _} = e ->
|
||||
e
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue