use wrapper functions getPostsFields and getTopicsFields

v1.18.x
barisusakli 10 years ago
parent 9a606246a9
commit 52c12fa1b1

@ -1,6 +1,7 @@
'use strict'; 'use strict';
var async = require('async'), var async = require('async'),
posts = require('../posts'),
db = require('../database'); db = require('../database');
module.exports = function(Categories) { module.exports = function(Categories) {
@ -11,17 +12,13 @@ module.exports = function(Categories) {
db.getSortedSetRevRange('cid:' + cid + ':pids', 0, 24, next); db.getSortedSetRevRange('cid:' + cid + ':pids', 0, 24, next);
}, },
function(pids, next) { function(pids, next) {
var keys = pids.map(function(pid) { posts.getPostsFields(pids, ['uid'], next);
return 'post:' + pid;
});
db.getObjectsFields(keys, ['uid'], next);
}, },
function(users, next) { function(posts, next) {
var uids = users.map(function(user) { var uids = posts.map(function(post) {
return user.uid; return post.uid;
}).filter(function(value, index, array) { }).filter(function(uid, index, array) {
return parseInt(value, 10) !== 0 && array.indexOf(value) === index; return parseInt(uid, 10) !== 0 && array.indexOf(uid) === index;
}).slice(0, 24); }).slice(0, 24);
callback(null, uids); callback(null, uids);

@ -135,11 +135,8 @@ module.exports = function(Categories) {
done = true; done = true;
return next(); return next();
} }
var keys = movePids.map(function(pid) {
return 'post:' + pid;
});
db.getObjectsFields(keys, ['timestamp'], function(err, postData) { posts.getPostsFields(movePids, ['timestamp'], function(err, postData) {
if (err) { if (err) {
return next(err); return next(err);
} }

@ -68,11 +68,7 @@ module.exports = function(privileges) {
return callback(null, []); return callback(null, []);
} }
var keys = tids.map(function(tid) { topics.getTopicsFields(tids, ['tid', 'cid'], function(err, topics) {
return 'topic:' + tid;
});
db.getObjectsFields(keys, ['tid', 'cid'], function(err, topics) {
if (err) { if (err) {
return callback(err); return callback(err);
} }

@ -126,11 +126,7 @@ SocketTopics.markCategoryTopicsRead = function(socket, cid, callback) {
return callback(err); return callback(err);
} }
var keys = tids.map(function(tid) { topics.getTopicsFields(tids, ['tid', 'cid'], function(err, topicData) {
return 'topic:' + tid;
});
db.getObjectsFields(keys, ['tid', 'cid'], function(err, topicData) {
if (err) { if (err) {
return callback(err); return callback(err);
} }

@ -286,11 +286,7 @@ var async = require('async'),
}; };
Topics.getMainPosts = function(tids, uid, callback) { Topics.getMainPosts = function(tids, uid, callback) {
var keys = tids.map(function(tid) { Topics.getTopicsFields(tids, ['mainPid'], function(err, topicData) {
return 'topic:' + tid;
});
db.getObjectsFields(keys, ['mainPid'], function(err, topicData) {
if (err) { if (err) {
return callback(err); return callback(err);
} }

@ -39,11 +39,7 @@ module.exports = function(Topics) {
} }
function getTopics(tids, uid, count, callback) { function getTopics(tids, uid, count, callback) {
var keys = tids.map(function(tid) { Topics.getTopicsFields(tids, ['tid', 'postcount'], function(err, topics) {
return 'topic:' + tid;
});
db.getObjectsFields(keys, ['tid', 'postcount'], function(err, topics) {
if (err) { if (err) {
return callback(err); return callback(err);
} }

@ -10,7 +10,6 @@ var async = require('async'),
utils = require('../../public/src/utils'); utils = require('../../public/src/utils');
module.exports = function(Topics) { module.exports = function(Topics) {
Topics.getTeasers = function(tids, uid, callback) { Topics.getTeasers = function(tids, uid, callback) {
@ -43,11 +42,9 @@ module.exports = function(Topics) {
return callback(err); return callback(err);
} }
var postKeys = results.pids.filter(Boolean).map(function(pid) { results.pids = results.pids.filter(Boolean);
return 'post:' + pid;
});
db.getObjectsFields(postKeys, ['pid', 'uid', 'timestamp', 'tid'], function(err, postData) { posts.getPostsFields(results.pids, ['pid', 'uid', 'timestamp', 'tid'], function(err, postData) {
if (err) { if (err) {
return callback(err); return callback(err);
} }

@ -2,7 +2,8 @@
'use strict'; 'use strict';
var db = require('../database'); var db = require('../database'),
posts = require('../posts');
module.exports = function(Topics) { module.exports = function(Topics) {
@ -23,19 +24,15 @@ module.exports = function(Topics) {
return callback(err); return callback(err);
} }
var keys = pids.map(function(pid) { posts.getPostsFields(pids, ['uid'], function(err, postData) {
return 'post:' + pid;
});
db.getObjectsFields(keys, ['uid'], function(err, data) {
if (err) { if (err) {
return callback(err); return callback(err);
} }
var uids = data.map(function(data) { var uids = postData.map(function(post) {
return data.uid; return post && post.uid;
}).filter(function(uid, pos, array) { }).filter(function(uid, index, array) {
return array.indexOf(uid) === pos; return array.indexOf(uid) === index;
}); });
callback(null, uids); callback(null, uids);

Loading…
Cancel
Save