projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix with expression always matching
[akkoma]
/
lib
/
pleroma
/
user.ex
diff --git
a/lib/pleroma/user.ex
b/lib/pleroma/user.ex
index 1ce9882f63b6125c82c947dd16a47f3e55342f34..5e8dfc669ded609bd871d51e24a86395f0abf4a0 100644
(file)
--- a/
lib/pleroma/user.ex
+++ b/
lib/pleroma/user.ex
@@
-411,7
+411,7
@@
defmodule Pleroma.User do
Enum.map(
followed_identifiers,
fn followed_identifier ->
Enum.map(
followed_identifiers,
fn followed_identifier ->
- with
%User{} = followed
<- get_or_fetch(followed_identifier),
+ with
{:ok, %User{} = followed}
<- get_or_fetch(followed_identifier),
{:ok, follower} <- maybe_direct_follow(follower, followed),
{:ok, _} <- ActivityPub.follow(follower, followed) do
followed
{:ok, follower} <- maybe_direct_follow(follower, followed),
{:ok, _} <- ActivityPub.follow(follower, followed) do
followed
@@
-492,7
+492,15
@@
defmodule Pleroma.User do
def get_cached_by_nickname(nickname) do
key = "nickname:#{nickname}"
def get_cached_by_nickname(nickname) do
key = "nickname:#{nickname}"
- Cachex.fetch!(:user_cache, key, fn _ -> get_or_fetch_by_nickname(nickname) end)
+
+ Cachex.fetch!(:user_cache, key, fn ->
+ user_result = get_or_fetch_by_nickname(nickname)
+
+ case user_result do
+ {:ok, user} -> {:commit, user}
+ {:error, error} -> {:ignore, error}
+ end
+ end)
end
def get_cached_by_nickname_or_id(nickname_or_id) do
end
def get_cached_by_nickname_or_id(nickname_or_id) do
@@
-529,7
+537,7
@@
defmodule Pleroma.User do
def get_or_fetch_by_nickname(nickname) do
with %User{} = user <- get_by_nickname(nickname) do
def get_or_fetch_by_nickname(nickname) do
with %User{} = user <- get_by_nickname(nickname) do
- user
+ {:ok, user}
else
_e ->
with [_nick, _domain] <- String.split(nickname, "@"),
else
_e ->
with [_nick, _domain] <- String.split(nickname, "@"),
@@
-538,9
+546,9
@@
defmodule Pleroma.User do
{:ok, _} = Task.start(__MODULE__, :fetch_initial_posts, [user])
end
{:ok, _} = Task.start(__MODULE__, :fetch_initial_posts, [user])
end
- user
+ {:ok, user}
else
else
- _e -> nil
+ e -> {:error, e}
end
end
end
end
end
end
@@
-939,7
+947,7
@@
defmodule Pleroma.User do
Enum.map(
blocked_identifiers,
fn blocked_identifier ->
Enum.map(
blocked_identifiers,
fn blocked_identifier ->
- with
%User{} = blocked
<- get_or_fetch(blocked_identifier),
+ with
{:ok, %User{} = blocked}
<- get_or_fetch(blocked_identifier),
{:ok, blocker} <- block(blocker, blocked),
{:ok, _} <- ActivityPub.block(blocker, blocked) do
blocked
{:ok, blocker} <- block(blocker, blocked),
{:ok, _} <- ActivityPub.block(blocker, blocked) do
blocked
@@
-1157,17
+1165,17
@@
defmodule Pleroma.User do
user = get_by_ap_id(ap_id)
if !is_nil(user) and !User.needs_update?(user) do
user = get_by_ap_id(ap_id)
if !is_nil(user) and !User.needs_update?(user) do
- user
+ {:ok, user}
else
else
- user = fetch_by_ap_id(ap_id)
-
- if Pleroma.Config.get([:fetch_initial_posts, :enabled]) do
- with %User{} = user do
+ with %User{} = user <- fetch_by_ap_id(ap_id) do
+ if Pleroma.Config.get([:fetch_initial_posts, :enabled]) do
{:ok, _} = Task.start(__MODULE__, :fetch_initial_posts, [user])
end
{:ok, _} = Task.start(__MODULE__, :fetch_initial_posts, [user])
end
- end
- user
+ {:ok, user}
+ else
+ _ -> {:error, "Could not fetch by AP id"}
+ end
end
end
end
end
@@
-1209,7
+1217,7
@@
defmodule Pleroma.User do
end
def get_public_key_for_ap_id(ap_id) do
end
def get_public_key_for_ap_id(ap_id) do
- with
%User{} = user
<- get_or_fetch_by_ap_id(ap_id),
+ with
{:ok, %User{} = user}
<- get_or_fetch_by_ap_id(ap_id),
{:ok, public_key} <- public_key_from_info(user.info) do
{:ok, public_key}
else
{:ok, public_key} <- public_key_from_info(user.info) do
{:ok, public_key}
else