mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-28 01:26:16 +01:00
moved postTools and threadTools into posts/ and topics/
This commit is contained in:
@@ -22,6 +22,7 @@ var async = require('async'),
|
||||
require('./posts/summary')(Posts);
|
||||
require('./posts/recent')(Posts);
|
||||
require('./posts/flags')(Posts);
|
||||
require('./posts/tools')(Posts);
|
||||
|
||||
Posts.exists = function(pid, callback) {
|
||||
db.isSortedSetMember('posts:pid', pid, callback);
|
||||
|
||||
@@ -38,7 +38,7 @@ module.exports = function(Posts) {
|
||||
topics.updateTeaser(postData.tid, next);
|
||||
}
|
||||
], function(err) {
|
||||
callback(err, postData);
|
||||
next(err, postData);
|
||||
});
|
||||
}
|
||||
], callback);
|
||||
|
||||
@@ -2,27 +2,27 @@
|
||||
|
||||
var async = require('async'),
|
||||
|
||||
posts = require('./posts'),
|
||||
privileges = require('./privileges'),
|
||||
cache = require('./posts/cache');
|
||||
privileges = require('../privileges'),
|
||||
cache = require('./cache');
|
||||
|
||||
(function(PostTools) {
|
||||
module.exports = function(Posts) {
|
||||
Posts.tools = {};
|
||||
|
||||
PostTools.delete = function(uid, pid, callback) {
|
||||
Posts.tools.delete = function(uid, pid, callback) {
|
||||
togglePostDelete(uid, pid, true, callback);
|
||||
};
|
||||
|
||||
PostTools.restore = function(uid, pid, callback) {
|
||||
Posts.tools.restore = function(uid, pid, callback) {
|
||||
togglePostDelete(uid, pid, false, callback);
|
||||
};
|
||||
|
||||
function togglePostDelete(uid, pid, isDelete, callback) {
|
||||
async.waterfall([
|
||||
function(next) {
|
||||
posts.getPostField(pid, 'deleted', next);
|
||||
Posts.getPostField(pid, 'deleted', next);
|
||||
},
|
||||
function(deleted, next) {
|
||||
if(parseInt(deleted, 10) === 1 && isDelete) {
|
||||
if (parseInt(deleted, 10) === 1 && isDelete) {
|
||||
return next(new Error('[[error:post-already-deleted]]'));
|
||||
} else if(parseInt(deleted, 10) !== 1 && !isDelete) {
|
||||
return next(new Error('[[error:post-already-restored]]'));
|
||||
@@ -43,19 +43,19 @@ var async = require('async'),
|
||||
|
||||
if (isDelete) {
|
||||
cache.del(pid);
|
||||
posts.delete(pid, callback);
|
||||
Posts.delete(pid, callback);
|
||||
} else {
|
||||
posts.restore(pid, function(err, postData) {
|
||||
Posts.restore(pid, function(err, postData) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
posts.parsePost(postData, callback);
|
||||
Posts.parsePost(postData, callback);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
PostTools.purge = function(uid, pid, callback) {
|
||||
Posts.tools.purge = function(uid, pid, callback) {
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
privileges.posts.canPurge(pid, uid, next);
|
||||
@@ -65,10 +65,10 @@ var async = require('async'),
|
||||
return next(new Error('[[error:no-privileges]]'));
|
||||
}
|
||||
cache.del(pid);
|
||||
posts.purge(pid, next);
|
||||
Posts.purge(pid, next);
|
||||
}
|
||||
], callback);
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}(exports));
|
||||
@@ -11,7 +11,6 @@ var async = require('async'),
|
||||
meta = require('../meta'),
|
||||
topics = require('../topics'),
|
||||
favourites = require('../favourites'),
|
||||
postTools = require('../postTools'),
|
||||
notifications = require('../notifications'),
|
||||
groups = require('../groups'),
|
||||
user = require('../user'),
|
||||
@@ -346,28 +345,27 @@ SocketPosts.edit = function(socket, data, callback) {
|
||||
};
|
||||
|
||||
SocketPosts.delete = function(socket, data, callback) {
|
||||
deleteOrRestore('delete', socket, data, callback);
|
||||
doPostAction('delete', 'event:post_deleted', socket, data, callback);
|
||||
};
|
||||
|
||||
SocketPosts.restore = function(socket, data, callback) {
|
||||
deleteOrRestore('restore', socket, data, callback);
|
||||
doPostAction('restore', 'event:post_restored', socket, data, callback);
|
||||
};
|
||||
|
||||
function deleteOrRestore(command, socket, data, callback) {
|
||||
function doPostAction(command, eventName, socket, data, callback) {
|
||||
if (!data) {
|
||||
return callback(new Error('[[error:invalid-data]]'));
|
||||
}
|
||||
|
||||
postTools[command](socket.uid, data.pid, function(err, postData) {
|
||||
posts.tools[command](socket.uid, data.pid, function(err, postData) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
var eventName = command === 'delete' ? 'event:post_deleted' : 'event:post_restored';
|
||||
websockets.in('topic_' + data.tid).emit(eventName, postData);
|
||||
|
||||
events.log({
|
||||
type: command === 'delete' ? 'post-delete' : 'post-restore',
|
||||
type: 'post-' + command,
|
||||
uid: socket.uid,
|
||||
pid: data.pid,
|
||||
ip: socket.ip
|
||||
@@ -379,7 +377,7 @@ function deleteOrRestore(command, socket, data, callback) {
|
||||
|
||||
SocketPosts.purge = function(socket, data, callback) {
|
||||
function purgePost() {
|
||||
postTools.purge(socket.uid, data.pid, function(err) {
|
||||
posts.tools.purge(socket.uid, data.pid, function(err) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@ var nconf = require('nconf'),
|
||||
privileges = require('../privileges'),
|
||||
plugins = require('../plugins'),
|
||||
notifications = require('../notifications'),
|
||||
threadTools = require('../threadTools'),
|
||||
websockets = require('./index'),
|
||||
user = require('../user'),
|
||||
db = require('../database'),
|
||||
@@ -239,12 +238,12 @@ SocketTopics.doTopicAction = function(action, event, socket, data, callback) {
|
||||
return callback(new Error('[[error:invalid-tid]]'));
|
||||
}
|
||||
|
||||
if (typeof threadTools[action] !== 'function') {
|
||||
if (typeof topics.tools[action] !== 'function') {
|
||||
return callback();
|
||||
}
|
||||
|
||||
async.each(data.tids, function(tid, next) {
|
||||
threadTools[action](tid, socket.uid, function(err, data) {
|
||||
topics.tools[action](tid, socket.uid, function(err, data) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
@@ -330,7 +329,7 @@ SocketTopics.move = function(socket, data, callback) {
|
||||
function(_topicData, next) {
|
||||
topicData = _topicData;
|
||||
topicData.tid = tid;
|
||||
threadTools.move(tid, data.cid, socket.uid, next);
|
||||
topics.tools.move(tid, data.cid, socket.uid, next);
|
||||
}
|
||||
], function(err) {
|
||||
if(err) {
|
||||
@@ -392,7 +391,7 @@ SocketTopics.moveAll = function(socket, data, callback) {
|
||||
}
|
||||
|
||||
async.eachLimit(tids, 10, function(tid, next) {
|
||||
threadTools.move(tid, data.cid, socket.uid, next);
|
||||
topics.tools.move(tid, data.cid, socket.uid, next);
|
||||
}, callback);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -2,22 +2,23 @@
|
||||
|
||||
var async = require('async'),
|
||||
|
||||
db = require('./database'),
|
||||
topics = require('./topics'),
|
||||
categories = require('./categories'),
|
||||
posts = require('./posts'),
|
||||
plugins = require('./plugins'),
|
||||
batch = require('./batch'),
|
||||
privileges = require('./privileges');
|
||||
db = require('../database'),
|
||||
categories = require('../categories'),
|
||||
plugins = require('../plugins'),
|
||||
privileges = require('../privileges');
|
||||
|
||||
|
||||
(function(ThreadTools) {
|
||||
module.exports = function(Topics) {
|
||||
|
||||
ThreadTools.delete = function(tid, uid, callback) {
|
||||
var topicTools = {};
|
||||
Topics.tools = topicTools;
|
||||
|
||||
|
||||
topicTools.delete = function(tid, uid, callback) {
|
||||
toggleDelete(tid, uid, true, callback);
|
||||
};
|
||||
|
||||
ThreadTools.restore = function(tid, uid, callback) {
|
||||
topicTools.restore = function(tid, uid, callback) {
|
||||
toggleDelete(tid, uid, false, callback);
|
||||
};
|
||||
|
||||
@@ -31,7 +32,7 @@ var async = require('async'),
|
||||
if (!isOwnerOrAdminOrMod) {
|
||||
return next(new Error('[[error:no-privileges]]'));
|
||||
}
|
||||
topics.getTopicFields(tid, ['tid', 'cid', 'uid', 'deleted', 'title', 'mainPid'], next);
|
||||
Topics.getTopicFields(tid, ['tid', 'cid', 'uid', 'deleted', 'title', 'mainPid'], next);
|
||||
},
|
||||
function (_topicData, next) {
|
||||
topicData = _topicData;
|
||||
@@ -42,7 +43,7 @@ var async = require('async'),
|
||||
return callback(new Error('[[error:topic-already-restored]]'));
|
||||
}
|
||||
|
||||
topics[isDelete ? 'delete' : 'restore'](tid, next);
|
||||
Topics[isDelete ? 'delete' : 'restore'](tid, next);
|
||||
},
|
||||
function (next) {
|
||||
topicData.deleted = isDelete ? 1 : 0;
|
||||
@@ -65,11 +66,11 @@ var async = require('async'),
|
||||
], callback);
|
||||
}
|
||||
|
||||
ThreadTools.purge = function(tid, uid, callback) {
|
||||
topicTools.purge = function(tid, uid, callback) {
|
||||
var cid;
|
||||
async.waterfall([
|
||||
function(next) {
|
||||
topics.exists(tid, next);
|
||||
Topics.exists(tid, next);
|
||||
},
|
||||
function(exists, next) {
|
||||
if (!exists) {
|
||||
@@ -82,12 +83,12 @@ var async = require('async'),
|
||||
return next(new Error('[[error:no-privileges]]'));
|
||||
}
|
||||
|
||||
topics.getTopicField(tid, 'cid', next);
|
||||
Topics.getTopicField(tid, 'cid', next);
|
||||
},
|
||||
function (_cid, next) {
|
||||
cid = _cid;
|
||||
|
||||
topics.purgePostsAndTopic(tid, next);
|
||||
Topics.purgePostsAndTopic(tid, next);
|
||||
},
|
||||
function (next) {
|
||||
next(null, {tid: tid, cid: cid, uid: uid});
|
||||
@@ -95,11 +96,11 @@ var async = require('async'),
|
||||
], callback);
|
||||
};
|
||||
|
||||
ThreadTools.lock = function(tid, uid, callback) {
|
||||
topicTools.lock = function(tid, uid, callback) {
|
||||
toggleLock(tid, uid, true, callback);
|
||||
};
|
||||
|
||||
ThreadTools.unlock = function(tid, uid, callback) {
|
||||
topicTools.unlock = function(tid, uid, callback) {
|
||||
toggleLock(tid, uid, false, callback);
|
||||
};
|
||||
|
||||
@@ -110,7 +111,7 @@ var async = require('async'),
|
||||
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
topics.getTopicField(tid, 'cid', next);
|
||||
Topics.getTopicField(tid, 'cid', next);
|
||||
},
|
||||
function (_cid, next) {
|
||||
cid = _cid;
|
||||
@@ -124,7 +125,7 @@ var async = require('async'),
|
||||
return next(new Error('[[error:no-privileges]]'));
|
||||
}
|
||||
|
||||
topics.setTopicField(tid, 'locked', lock ? 1 : 0, next);
|
||||
Topics.setTopicField(tid, 'locked', lock ? 1 : 0, next);
|
||||
},
|
||||
function (next) {
|
||||
var data = {
|
||||
@@ -141,11 +142,11 @@ var async = require('async'),
|
||||
], callback);
|
||||
}
|
||||
|
||||
ThreadTools.pin = function(tid, uid, callback) {
|
||||
topicTools.pin = function(tid, uid, callback) {
|
||||
togglePin(tid, uid, true, callback);
|
||||
};
|
||||
|
||||
ThreadTools.unpin = function(tid, uid, callback) {
|
||||
topicTools.unpin = function(tid, uid, callback) {
|
||||
togglePin(tid, uid, false, callback);
|
||||
};
|
||||
|
||||
@@ -153,13 +154,13 @@ var async = require('async'),
|
||||
var topicData;
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
topics.exists(tid, next);
|
||||
Topics.exists(tid, next);
|
||||
},
|
||||
function (exists, next) {
|
||||
if (!exists) {
|
||||
return callback();
|
||||
}
|
||||
topics.getTopicFields(tid, ['cid', 'lastposttime'], next);
|
||||
Topics.getTopicFields(tid, ['cid', 'lastposttime'], next);
|
||||
},
|
||||
function (_topicData, next) {
|
||||
topicData = _topicData;
|
||||
@@ -170,7 +171,7 @@ var async = require('async'),
|
||||
return next(new Error('[[error:no-privileges]]'));
|
||||
}
|
||||
async.parallel([
|
||||
async.apply(topics.setTopicField, tid, 'pinned', pin ? 1 : 0),
|
||||
async.apply(Topics.setTopicField, tid, 'pinned', pin ? 1 : 0),
|
||||
async.apply(db.sortedSetAdd, 'cid:' + topicData.cid + ':tids', pin ? Math.pow(2, 53) : topicData.lastposttime, tid)
|
||||
], next);
|
||||
},
|
||||
@@ -189,11 +190,11 @@ var async = require('async'),
|
||||
], callback);
|
||||
}
|
||||
|
||||
ThreadTools.move = function(tid, cid, uid, callback) {
|
||||
topicTools.move = function(tid, cid, uid, callback) {
|
||||
var topic;
|
||||
async.waterfall([
|
||||
function(next) {
|
||||
topics.getTopicFields(tid, ['cid', 'lastposttime', 'pinned', 'deleted', 'postcount'], next);
|
||||
Topics.getTopicFields(tid, ['cid', 'lastposttime', 'pinned', 'deleted', 'postcount'], next);
|
||||
},
|
||||
function(topicData, next) {
|
||||
topic = topicData;
|
||||
@@ -229,7 +230,7 @@ var async = require('async'),
|
||||
categories.incrementCategoryFieldBy(cid, 'topic_count', 1, next);
|
||||
},
|
||||
function (next) {
|
||||
topics.setTopicField(tid, 'cid', cid, next);
|
||||
Topics.setTopicField(tid, 'cid', cid, next);
|
||||
}
|
||||
], function(err) {
|
||||
if (err) {
|
||||
@@ -247,4 +248,4 @@ var async = require('async'),
|
||||
};
|
||||
|
||||
|
||||
}(exports));
|
||||
};
|
||||
Reference in New Issue
Block a user