diff options
author | kaniini <nenolod@gmail.com> | 2019-02-28 10:10:03 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2019-02-28 10:10:03 +0000 |
commit | 089e2588a35415c911576bf5b7ae94540357705b (patch) | |
tree | fc7ec681464964c2974117d7015277f7c4285549 | |
parent | 3c849d0438b9c8e2954c46455b8f37a3ee71c25c (diff) | |
parent | b24cc44e8d1e1b29cdeb916f192e30303a55ff5d (diff) | |
download | pleroma-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.ex | 5 | ||||
-rw-r--r-- | test/user_test.exs | 14 |
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) |