v1.18.x
barisusakli 9 years ago
parent 58a8c8d205
commit 654961ca3b

@ -1,15 +1,13 @@
'use strict'; 'use strict';
var async = require('async'), var async = require('async');
nconf = require('nconf'),
db = require('./database'), var db = require('./database');
user = require('./user'), var user = require('./user');
Groups = require('./groups'), var Groups = require('./groups');
plugins = require('./plugins'), var plugins = require('./plugins');
validator = require('validator'), var privileges = require('./privileges');
privileges = require('./privileges');
(function(Categories) { (function(Categories) {
@ -27,37 +25,40 @@ var async = require('async'),
}; };
Categories.getCategoryById = function(data, callback) { Categories.getCategoryById = function(data, callback) {
Categories.getCategories([data.cid], data.uid, function(err, categories) { var category;
if (err || !Array.isArray(categories) || !categories[0]) { async.waterfall([
return callback(err || new Error('[[error:invalid-cid]]')); function (next) {
} Categories.getCategories([data.cid], data.uid, next);
var category = categories[0]; },
function (categories, next) {
if (parseInt(data.uid, 10)) { if (!Array.isArray(categories) || !categories[0]) {
Categories.markAsRead([data.cid], data.uid); return next(new Error('[[error:invalid-cid]]'));
}
async.parallel({
topics: function(next) {
Categories.getCategoryTopics(data, next);
},
isIgnored: function(next) {
Categories.isIgnored([data.cid], data.uid, next);
} }
}, function(err, results) { category = categories[0];
if(err) { if (parseInt(data.uid, 10)) {
return callback(err); Categories.markAsRead([data.cid], data.uid);
} }
async.parallel({
topics: function(next) {
Categories.getCategoryTopics(data, next);
},
isIgnored: function(next) {
Categories.isIgnored([data.cid], data.uid, next);
}
}, next);
},
function (results, next) {
category.topics = results.topics.topics; category.topics = results.topics.topics;
category.nextStart = results.topics.nextStart; category.nextStart = results.topics.nextStart;
category.isIgnored = results.isIgnored[0]; category.isIgnored = results.isIgnored[0];
plugins.fireHook('filter:category.get', {category: category, uid: data.uid}, function(err, data) { plugins.fireHook('filter:category.get', {category: category, uid: data.uid}, next);
callback(err, data ? data.category : null); },
}); function (data, next) {
}); next(null, data.category);
}); }
], callback);
}; };
Categories.isIgnored = function(cids, uid, callback) { Categories.isIgnored = function(cids, uid, callback) {

Loading…
Cancel
Save