From 03fdb5bede6ad47730b88a7860ea1ae5903b73f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 23 Mar 2022 15:27:45 -0400 Subject: [PATCH] fix: byCid removal, targetCid not stored in flagObj --- src/flags.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/flags.js b/src/flags.js index b93902fa63..be8ba8856f 100644 --- a/src/flags.js +++ b/src/flags.js @@ -469,7 +469,10 @@ Flags.purge = async function (flagIds) { const userFlags = flagData.filter(flagObj => flagObj.type === 'user'); const assignedFlags = flagData.filter(flagObj => !!flagObj.assignee); - const allReports = await db.getSortedSetsMembers(flagData.map(flagObj => `flag:${flagObj.flagId}:reports`)); + const [allReports, postCids] = await Promise.all([ + db.getSortedSetsMembers(flagData.map(flagObj => `flag:${flagObj.flagId}:reports`)), + posts.getCidsByPids(postFlags.map(flagObj => flagObj.targetId)), + ]); const allReporterUids = allReports.map(flagReports => flagReports.map(report => report && report.split(';')[0])); const removeReporters = []; flagData.forEach((flagObj, i) => { @@ -485,7 +488,7 @@ Flags.purge = async function (flagIds) { ...flagData.map(flagObj => ([`flags:byType:${flagObj.type}`, flagObj.flagId])), ...flagData.map(flagObj => ([`flags:byState:${flagObj.state}`, flagObj.flagId])), ...removeReporters, - ...postFlags.map(flagObj => ([`flags:byCid:${flagObj.targetCid}`, flagObj.flagId])), + ...postFlags.map((flagObj, i) => ([`flags:byCid:${postCids[i]}`, flagObj.flagId])), ...postFlags.map(flagObj => ([`flags:byPid:${flagObj.targetId}`, flagObj.flagId])), ...assignedFlags.map(flagObj => ([`flags:byAssignee:${flagObj.assignee}`, flagObj.flagId])), ...userFlags.map(flagObj => ([`flags:byTargetUid:${flagObj.targetUid}`, flagObj.flagId])),