Poll notification: only notify local users

This commit is contained in:
Alex Gleason 2021-07-18 11:03:56 -05:00
parent 0b1c05ca1e
commit 70f1496eb8
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7
2 changed files with 6 additions and 4 deletions

View File

@ -471,9 +471,11 @@ def create_poll_notifications(%Activity{} = activity) do
end
notifications =
Enum.map([actor | voters], fn ap_id ->
with %User{} = user <- User.get_by_ap_id(ap_id) do
create_notification(activity, user, type: "poll")
Enum.reduce([actor | voters], [], fn ap_id, acc ->
with %User{local: true} = user <- User.get_by_ap_id(ap_id) do
[create_notification(activity, user, type: "poll") | acc]
else
_ -> acc
end
end)

View File

@ -139,7 +139,7 @@ test "create_poll_notifications/1" do
{:ok, notifications} = Notification.create_poll_notifications(activity)
assert [user1.id, user3.id, user2.id] == Enum.map(notifications, & &1.user_id)
assert [user2.id, user3.id, user1.id] == Enum.map(notifications, & &1.user_id)
end
describe "CommonApi.post/2 notification-related functionality" do