From 99cf47ee08e30b825e0b131e43c4dd68947b81ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 23 Jul 2019 21:47:33 -0400 Subject: [PATCH] feat: get rid of async.eachSeries --- src/topics/tools.js | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/topics/tools.js b/src/topics/tools.js index a46d468209..10e2b50400 100644 --- a/src/topics/tools.js +++ b/src/topics/tools.js @@ -1,17 +1,16 @@ 'use strict'; -var async = require('async'); -var _ = require('lodash'); +const _ = require('lodash'); -var db = require('../database'); -var categories = require('../categories'); -var user = require('../user'); -var plugins = require('../plugins'); -var privileges = require('../privileges'); +const db = require('../database'); +const categories = require('../categories'); +const user = require('../user'); +const plugins = require('../plugins'); +const privileges = require('../privileges'); module.exports = function (Topics) { - var topicTools = {}; + const topicTools = {}; Topics.tools = topicTools; topicTools.delete = async function (tid, uid) { @@ -161,12 +160,10 @@ module.exports = function (Topics) { throw new Error('[[error:no-privileges]]'); } - await async.eachSeries(data, async function (topicData) { - const isPinned = await db.isSortedSetMember('cid:' + cid + ':tids:pinned', topicData.tid); - if (isPinned) { - await db.sortedSetAdd('cid:' + cid + ':tids:pinned', topicData.order, topicData.tid); - } - }); + const isPinned = await db.isSortedSetMembers('cid:' + cid + ':tids:pinned', tids); + data = data.filter((topicData, index) => isPinned[index]); + const bulk = data.map(topicData => ['cid:' + cid + ':tids:pinned', topicData.order, topicData.tid]); + await db.sortedSetAddBulk(bulk); }; topicTools.move = async function (tid, data) {