diff --git a/src/flags.js b/src/flags.js index ee2d171b2d..908c196e1b 100644 --- a/src/flags.js +++ b/src/flags.js @@ -469,9 +469,9 @@ Flags.purge = async function (flagIds) { const userFlags = flagData.filter(flagObj => flagObj.type === 'user'); const assignedFlags = flagData.filter(flagObj => !!flagObj.assignee); - const [allReports, postCids] = await Promise.all([ + const [allReports, cids] = await Promise.all([ db.getSortedSetsMembers(flagData.map(flagObj => `flag:${flagObj.flagId}:reports`)), - posts.getCidsByPids(postFlags.map(flagObj => flagObj.targetId)), + categories.getAllCidsFromSet('categories:cid'), ]); const allReporterUids = allReports.map(flagReports => flagReports.map(report => report && report.split(';')[0])); const removeReporters = []; @@ -488,7 +488,6 @@ 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, 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])), @@ -500,6 +499,7 @@ Flags.purge = async function (flagIds) { ...flagIds.map(flagId => `flag:${flagId}:notes`), ...flagIds.map(flagId => `flag:${flagId}:reports`), ]), + db.sortedSetRemove(cids.map(cid => `flags:byCid:${cid}`), flagIds), db.sortedSetRemove('flags:datetime', flagIds), db.sortedSetRemove( 'flags:byTarget',