'use strict'; var async = require('async'), db = require('../database'), topics = require('../topics'), plugins = require('../plugins'); module.exports = function(Categories) { Categories.getCategoryTopics = function(data, callback) { var tids; async.waterfall([ async.apply(plugins.fireHook, 'filter:category.topics.prepare', data), function(data, next) { Categories.getTopicIds(data.targetUid ? 'cid:' + data.cid + ':uid:' + data.targetUid + ':tids' : 'cid:' + data.cid + ':tids', data.start, data.stop, next); }, function(topicIds, next) { tids = topicIds; topics.getTopicsByTids(tids, data.uid, next); }, function(topics, next) { if (!Array.isArray(topics) || !topics.length) { return next(null, { topics: [], nextStart: 1 }); } var indices = {}, i = 0; for(i=0; i