Handle HTTP 404 response

This commit is contained in:
Egor Kislitsyn 2019-06-13 17:13:35 +07:00
parent afae3ada22
commit 30e54fd7e2
2 changed files with 11 additions and 1 deletions

View file

@ -85,7 +85,7 @@ defmodule Pleroma.Object.Fetcher do
:ok <- Containment.contain_origin_from_id(id, data) do :ok <- Containment.contain_origin_from_id(id, data) do
{:ok, data} {:ok, data}
else else
{:ok, %{status: 410}} -> {:ok, %{status: code}} when code in [404, 410] ->
{:error, "Object has been deleted"} {:error, "Object has been deleted"}
e -> e ->

View file

@ -11,6 +11,9 @@ defmodule Pleroma.Object.FetcherTest do
%{method: :get, url: "https://mastodon.example.org/users/userisgone"} -> %{method: :get, url: "https://mastodon.example.org/users/userisgone"} ->
%Tesla.Env{status: 410} %Tesla.Env{status: 410}
%{method: :get, url: "https://mastodon.example.org/users/userisgone404"} ->
%Tesla.Env{status: 404}
env -> env ->
apply(HttpRequestMock, :request, [env]) apply(HttpRequestMock, :request, [env])
end) end)
@ -100,6 +103,13 @@ defmodule Pleroma.Object.FetcherTest do
"https://mastodon.example.org/users/userisgone" "https://mastodon.example.org/users/userisgone"
) )
end 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 end
describe "pruning" do describe "pruning" do