NodeBB/NodeBB

View on GitHub
src/upgrades/1.13.0/clean_flag_byCid.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

const db = require('../../database');
const batch = require('../../batch');

module.exports = {
    name: 'Clean flag byCid zsets',
    timestamp: Date.UTC(2019, 8, 24),
    method: async function () {
        const { progress } = this;

        await batch.processSortedSet('flags:datetime', async (flagIds) => {
            progress.incr(flagIds.length);
            const flagData = await db.getObjects(flagIds.map(id => `flag:${id}`));
            const bulkRemove = [];
            for (const flagObj of flagData) {
                if (flagObj && flagObj.type === 'user' && flagObj.targetId && flagObj.flagId) {
                    bulkRemove.push([`flags:byCid:${flagObj.targetId}`, flagObj.flagId]);
                }
            }

            await db.sortedSetRemoveBulk(bulkRemove);
        }, {
            progress: progress,
        });
    },
};