aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/pleroma/user.ex8
-rw-r--r--test/user_test.exs12
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 474cd8c1a..dc534b05c 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -1441,4 +1441,12 @@ defmodule Pleroma.User do
update_and_set_cache(cng)
end
end
+
+ def get_ap_ids_by_nicknames(nicknames) do
+ from(u in User,
+ where: u.nickname in ^nicknames,
+ select: u.ap_id
+ )
+ |> Repo.all()
+ end
end
diff --git a/test/user_test.exs b/test/user_test.exs
index 019f2b56d..d7473ef43 100644
--- a/test/user_test.exs
+++ b/test/user_test.exs
@@ -1266,4 +1266,16 @@ defmodule Pleroma.UserTest do
assert user.info.keys == "xxx"
end
end
+
+ describe "get_ap_ids_by_nicknames" do
+ test "it returns a list of AP ids for a given set of nicknames" do
+ user = insert(:user)
+ user_two = insert(:user)
+
+ ap_ids = User.get_ap_ids_by_nicknames([user.nickname, user_two.nickname, "nonexistent"])
+ assert length(ap_ids) == 2
+ assert user.ap_id in ap_ids
+ assert user_two.ap_id in ap_ids
+ end
+ end
end