aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkaniini <nenolod@gmail.com>2019-02-28 10:10:03 +0000
committerkaniini <nenolod@gmail.com>2019-02-28 10:10:03 +0000
commit089e2588a35415c911576bf5b7ae94540357705b (patch)
treefc7ec681464964c2974117d7015277f7c4285549
parent3c849d0438b9c8e2954c46455b8f37a3ee71c25c (diff)
parentb24cc44e8d1e1b29cdeb916f192e30303a55ff5d (diff)
downloadpleroma-089e2588a35415c911576bf5b7ae94540357705b.tar.gz
Merge branch 'speedup-follow-requests' into 'develop'
Speedup follow requests Closes #677 See merge request pleroma/pleroma!871
-rw-r--r--lib/pleroma/user.ex5
-rw-r--r--test/user_test.exs14
2 files changed, 17 insertions, 2 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 01d532ab3..c5085fa82 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -613,9 +613,10 @@ defmodule Pleroma.User do
),
where:
fragment(
- "? @> ?",
+ "coalesce((?)->'object'->>'id', (?)->>'object') = ?",
a.data,
- ^%{"object" => user.ap_id}
+ a.data,
+ ^user.ap_id
)
)
end
diff --git a/test/user_test.exs b/test/user_test.exs
index 0b1c39ecf..cbe4693fc 100644
--- a/test/user_test.exs
+++ b/test/user_test.exs
@@ -50,6 +50,20 @@ defmodule Pleroma.UserTest do
assert expected_followers_collection == User.ap_followers(user)
end
+ test "returns all pending follow requests" do
+ unlocked = insert(:user)
+ locked = insert(:user, %{info: %{locked: true}})
+ follower = insert(:user)
+
+ Pleroma.Web.TwitterAPI.TwitterAPI.follow(follower, %{"user_id" => unlocked.id})
+ Pleroma.Web.TwitterAPI.TwitterAPI.follow(follower, %{"user_id" => locked.id})
+
+ assert {:ok, []} = User.get_follow_requests(unlocked)
+ assert {:ok, [activity]} = User.get_follow_requests(locked)
+
+ assert activity
+ end
+
test "follow_all follows mutliple users" do
user = insert(:user)
followed_zero = insert(:user)