From 1dba3bc4dcae9edf3df73b5855b010c9ba451fce Mon Sep 17 00:00:00 2001 From: marcin mikołajczak Date: Sun, 23 Jan 2022 12:29:01 +0100 Subject: Preserve order of mentioned users MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: marcin mikołajczak --- lib/pleroma/user.ex | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index bf5b6508b..ef5a02249 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -2279,6 +2279,7 @@ def ensure_keys_present(%User{} = user) do def get_ap_ids_by_nicknames(nicknames) do from(u in User, where: u.nickname in ^nicknames, + order_by: fragment("array_position(?, ?)", ^nicknames, u.nickname), select: u.ap_id ) |> Repo.all() -- cgit v1.2.3 From 75c4fefb1c3a8e4ce21661cbd634c608365354ba Mon Sep 17 00:00:00 2001 From: marcin mikołajczak Date: Sun, 23 Jan 2022 12:50:34 +0100 Subject: Add a test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: marcin mikołajczak --- test/pleroma/user_test.exs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/pleroma/user_test.exs b/test/pleroma/user_test.exs index 0345a9290..a5a9021f6 100644 --- a/test/pleroma/user_test.exs +++ b/test/pleroma/user_test.exs @@ -2084,6 +2084,17 @@ test "it returns a list of AP ids for a given set of nicknames" do assert user.ap_id in ap_ids assert user_two.ap_id in ap_ids end + + test "it returns a list of AP ids in the same order" do + user = insert(:user) + user_two = insert(:user) + user_three = insert(:user) + + ap_ids = + User.get_ap_ids_by_nicknames([user.nickname, user_three.nickname, user_two.nickname]) + + assert [user.ap_id, user_three.ap_id, user_two.ap_id] == ap_ids + end end describe "sync followers count" do -- cgit v1.2.3