From 922bf53753a0d43ca2e706fd1d9e5dbae627ba38 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Sat, 27 Aug 2022 11:58:21 +0200 Subject: [PATCH] fix: Document subscriptions backfill not recursive --- .../processors/NotificationsProcessor.ts | 19 ++++++++----------- .../20220722000000-backfill-subscriptions.ts | 6 ++++-- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/server/queues/processors/NotificationsProcessor.ts b/server/queues/processors/NotificationsProcessor.ts index 4af311222..20ce8daf6 100644 --- a/server/queues/processors/NotificationsProcessor.ts +++ b/server/queues/processors/NotificationsProcessor.ts @@ -14,7 +14,6 @@ import { NotificationSetting, Subscription, } from "@server/models"; -import { can } from "@server/policies"; import { CollectionEvent, RevisionEvent, @@ -133,16 +132,14 @@ export default class NotificationsProcessor extends BaseProcessor { const users = await document.collaborators({ transaction }); for (const user of users) { - if (user && can(user, "subscribe", document)) { - await subscriptionCreator({ - user, - documentId: document.id, - event: "documents.update", - resubscribe: false, - transaction, - ip: event.ip, - }); - } + await subscriptionCreator({ + user, + documentId: document.id, + event: "documents.update", + resubscribe: false, + transaction, + ip: event.ip, + }); } }); }; diff --git a/server/scripts/20220722000000-backfill-subscriptions.ts b/server/scripts/20220722000000-backfill-subscriptions.ts index d51dd901d..05e62d401 100644 --- a/server/scripts/20220722000000-backfill-subscriptions.ts +++ b/server/scripts/20220722000000-backfill-subscriptions.ts @@ -1,12 +1,12 @@ import "./bootstrap"; import { Subscription, Document } from "@server/models"; -const limit = 100; +const limit = 1000; let page = parseInt(process.argv[2], 10); page = Number.isNaN(page) ? 0 : page; export default async function main(exit = false) { - const work = async (page: number) => { + const work = async (page: number): Promise => { console.log(`Backfill subscription… page ${page}`); // Retrieve all documents within set limit. @@ -36,6 +36,8 @@ export default async function main(exit = false) { continue; } } + + return documents.length === limit ? work(page + 1) : undefined; }; await work(page);