diff options
author | rinpatch <rinpatch@sdf.org> | 2020-05-26 15:57:01 +0000 |
---|---|---|
committer | rinpatch <rinpatch@sdf.org> | 2020-05-26 15:57:01 +0000 |
commit | 3601c0015cd9537c75c476943d148a1063c237b8 (patch) | |
tree | e0842b37d9922ca7714a45100f3a640265fe5ccd /lib | |
parent | 5ad28ff405d0d5efc794e0e1f20091164ca82ea8 (diff) | |
parent | f20dff451e7abf343906b4e74f5d47b6207a3580 (diff) | |
download | pleroma-3601c0015cd9537c75c476943d148a1063c237b8.tar.gz |
Merge branch '1808-pleroma-sucks' into 'develop'
Resolve "Don't fail message ingestions when we can't update a user"
Closes #1808
See merge request pleroma/pleroma!2576
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/user.ex | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index d2eeeb479..842b28c06 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -1618,12 +1618,19 @@ defmodule Pleroma.User do def fetch_by_ap_id(ap_id), do: ActivityPub.make_user_from_ap_id(ap_id) def get_or_fetch_by_ap_id(ap_id) do - user = get_cached_by_ap_id(ap_id) + cached_user = get_cached_by_ap_id(ap_id) - if !is_nil(user) and !needs_update?(user) do - {:ok, user} - else - fetch_by_ap_id(ap_id) + maybe_fetched_user = needs_update?(cached_user) && fetch_by_ap_id(ap_id) + + case {cached_user, maybe_fetched_user} do + {_, {:ok, %User{} = user}} -> + {:ok, user} + + {%User{} = user, _} -> + {:ok, user} + + _ -> + {:error, :not_found} end end |