Merge branch 'preserve-mentions-order' into 'develop'

Preserve order of mentioned users

See merge request pleroma/pleroma!3617
This commit is contained in:
Alex Gleason 2022-01-23 15:23:56 +00:00
commit 7b87cac6cc
2 changed files with 12 additions and 0 deletions

View File

@ -2279,6 +2279,7 @@ def ensure_keys_present(%User{} = user) do
def get_ap_ids_by_nicknames(nicknames) do def get_ap_ids_by_nicknames(nicknames) do
from(u in User, from(u in User,
where: u.nickname in ^nicknames, where: u.nickname in ^nicknames,
order_by: fragment("array_position(?, ?)", ^nicknames, u.nickname),
select: u.ap_id select: u.ap_id
) )
|> Repo.all() |> Repo.all()

View File

@ -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.ap_id in ap_ids
assert user_two.ap_id in ap_ids assert user_two.ap_id in ap_ids
end 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 end
describe "sync followers count" do describe "sync followers count" do