diff options
| author | lain <lain@soykaf.club> | 2020-05-25 12:46:14 +0200 |
|---|---|---|
| committer | lain <lain@soykaf.club> | 2020-05-25 12:46:14 +0200 |
| commit | d0c26956da160b2fbfd4855ca7fe31eeebe6528d (patch) | |
| tree | 470a83be1f06296ffcaf714e7adca2fae9e897d5 /lib | |
| parent | 7bc2ec0aa26037337b6d562a36f24aa131d025d6 (diff) | |
| download | pleroma-d0c26956da160b2fbfd4855ca7fe31eeebe6528d.tar.gz pleroma-d0c26956da160b2fbfd4855ca7fe31eeebe6528d.zip | |
User: Don't error out if we want to refresh a user but can't
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 |
