Handle HTTP 404 response
authorEgor Kislitsyn <egor@kislitsyn.com>
Thu, 13 Jun 2019 10:13:35 +0000 (17:13 +0700)
committerEgor Kislitsyn <egor@kislitsyn.com>
Thu, 13 Jun 2019 10:13:35 +0000 (17:13 +0700)
lib/pleroma/object/fetcher.ex
test/object/fetcher_test.exs

index f7d724668034df8064b8bf21d0afa3496d39efeb..c422490ac4ae922399589d7ee842e5eb21a4a434 100644 (file)
@@ -85,7 +85,7 @@ defmodule Pleroma.Object.Fetcher do
          :ok <- Containment.contain_origin_from_id(id, data) do
       {:ok, data}
     else
-      {:ok, %{status: 410}} ->
+      {:ok, %{status: code}} when code in [404, 410] ->
         {:error, "Object has been deleted"}
 
       e ->
index 58abcfe5522ac26414137988b4df9d547ca22c64..26dc9496deb5c609617d518c789912eaf9604a8d 100644 (file)
@@ -11,6 +11,9 @@ defmodule Pleroma.Object.FetcherTest do
       %{method: :get, url: "https://mastodon.example.org/users/userisgone"} ->
         %Tesla.Env{status: 410}
 
+      %{method: :get, url: "https://mastodon.example.org/users/userisgone404"} ->
+        %Tesla.Env{status: 404}
+
       env ->
         apply(HttpRequestMock, :request, [env])
     end)
@@ -100,6 +103,13 @@ defmodule Pleroma.Object.FetcherTest do
                  "https://mastodon.example.org/users/userisgone"
                )
     end
+
+    test "handle HTTP 404 response" do
+      assert {:error, "Object has been deleted"} ==
+               Fetcher.fetch_and_contain_remote_object_from_id(
+                 "https://mastodon.example.org/users/userisgone404"
+               )
+    end
   end
 
   describe "pruning" do