aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2020-05-26 15:57:01 +0000
committerrinpatch <rinpatch@sdf.org>2020-05-26 15:57:01 +0000
commit3601c0015cd9537c75c476943d148a1063c237b8 (patch)
treee0842b37d9922ca7714a45100f3a640265fe5ccd /lib
parent5ad28ff405d0d5efc794e0e1f20091164ca82ea8 (diff)
parentf20dff451e7abf343906b4e74f5d47b6207a3580 (diff)
downloadpleroma-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.ex17
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