Add URL and code to :not_found errors
authorFloatingGhost <hannah@coffee-and-dreams.uk>
Fri, 9 Dec 2022 20:13:31 +0000 (20:13 +0000)
committerFloatingGhost <hannah@coffee-and-dreams.uk>
Fri, 9 Dec 2022 20:13:31 +0000 (20:13 +0000)
Ref #355

CHANGELOG.md
lib/pleroma/collections/fetcher.ex
lib/pleroma/object/fetcher.ex
lib/pleroma/web/activity_pub/activity_pub.ex
test/pleroma/object/fetcher_test.exs

index 6956912a7ece44cbdcd13faf318b9005f25fbf57..eef3c53b8fe0347f0066b4051301a0f174243886 100644 (file)
@@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 - Task to manually run the transient prune job (pleroma.database prune\_task)
 - Ability to follow hashtags
 - Option to extend `reject` in MRF-Simple to apply to entire threads, where the originating instance is rejected
+- Extra information to failed HTTP requests
 
 ## Changed
 - MastoAPI: Accept BooleanLike input on `/api/v1/accounts/:id/follow` (fixes follows with mastodon.py)
index ab69f4b848e05f8062f9b71e286b6589b0a4d865..a2fcb7794c66b7f321a1cea09b5c34f20ca5aca1 100644 (file)
@@ -68,7 +68,7 @@ defmodule Akkoma.Collections.Fetcher do
           items
         end
       else
-        {:error, "Object has been deleted"} ->
+        {:error, {"Object has been deleted", _, _}} ->
           items
 
         {:error, error} ->
index a9dfa18e77d5cdc1e7556201e59f15c5100fd344..cde4e503969e4a07f86e2a048afc4c08c3a449cd 100644 (file)
@@ -180,7 +180,7 @@ defmodule Pleroma.Object.Fetcher do
       {:error, %Tesla.Mock.Error{}} ->
         nil
 
-      {:error, "Object has been deleted"} ->
+      {:error, {"Object has been deleted", _id, _code}} ->
         nil
 
       {:reject, reason} ->
@@ -284,7 +284,7 @@ defmodule Pleroma.Object.Fetcher do
         end
 
       {:ok, %{status: code}} when code in [404, 410] ->
-        {:error, "Object has been deleted"}
+        {:error, {"Object has been deleted", id, code}}
 
       {:error, e} ->
         {:error, e}
index d700128c07a7067c245d6c9a208188b4c2b42c20..521c8b8520c2aac8f11f5a8fa6d80519a257f617 100644 (file)
@@ -1711,7 +1711,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
       {:ok, maybe_update_follow_information(data)}
     else
       # If this has been deleted, only log a debug and not an error
-      {:error, "Object has been deleted" = e} ->
+      {:error, {"Object has been deleted" = e, _, _}} ->
         Logger.debug("Could not decode user at fetch #{ap_id}, #{inspect(e)}")
         {:error, e}
 
index 71306cdfe4f822c3bf2f42ef51e1ff194d2cc4f7..22192d98f44124f09ea22a909f8b7198184a89fb 100644 (file)
@@ -216,14 +216,16 @@ defmodule Pleroma.Object.FetcherTest do
     end
 
     test "handle HTTP 410 Gone response" do
-      assert {:error, "Object has been deleted"} ==
+      assert {:error,
+              {"Object has been deleted", "https://mastodon.example.org/users/userisgone", 410}} ==
                Fetcher.fetch_and_contain_remote_object_from_id(
                  "https://mastodon.example.org/users/userisgone"
                )
     end
 
     test "handle HTTP 404 response" do
-      assert {:error, "Object has been deleted"} ==
+      assert {:error,
+              {"Object has been deleted", "https://mastodon.example.org/users/userisgone404", 404}} ==
                Fetcher.fetch_and_contain_remote_object_from_id(
                  "https://mastodon.example.org/users/userisgone404"
                )