mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-06 22:15:48 +01:00
feat: add reply count to getPostSummaryByPids
This commit is contained in:
@@ -113,3 +113,5 @@ PostsObject:
|
||||
type: string
|
||||
isMainPost:
|
||||
type: boolean
|
||||
replies:
|
||||
type: number
|
||||
@@ -53,6 +53,11 @@ module.exports = function (Posts) {
|
||||
data.pid = pid;
|
||||
plugins.fireHook('action:post.setFields', { data: data });
|
||||
};
|
||||
|
||||
Posts.getReplyCount = async function (pid) {
|
||||
// const keys = pids.map(pid => 'pid:' +pid + ':replies');
|
||||
return await db.sortedSetCard(`pid:${pid}:replies`);
|
||||
};
|
||||
};
|
||||
|
||||
function modifyPost(post, fields) {
|
||||
|
||||
@@ -38,7 +38,7 @@ module.exports = function (Posts) {
|
||||
const tidToTopic = toObject('tid', topicsAndCategories.topics);
|
||||
const cidToCategory = toObject('cid', topicsAndCategories.categories);
|
||||
|
||||
posts.forEach(function (post) {
|
||||
Promise.all(posts.map(async (post) => {
|
||||
// If the post author isn't represented in the retrieved users' data, then it means they were deleted, assume guest.
|
||||
if (!uidToUser.hasOwnProperty(post.uid)) {
|
||||
post.uid = 0;
|
||||
@@ -47,9 +47,12 @@ module.exports = function (Posts) {
|
||||
post.topic = tidToTopic[post.tid];
|
||||
post.category = post.topic && cidToCategory[post.topic.cid];
|
||||
post.isMainPost = post.topic && post.pid === post.topic.mainPid;
|
||||
post.replies = await Posts.getReplyCount(post.pid);
|
||||
post.deleted = post.deleted === 1;
|
||||
post.timestampISO = utils.toISOString(post.timestamp);
|
||||
});
|
||||
|
||||
return post;
|
||||
}));
|
||||
|
||||
posts = posts.filter(post => tidToTopic[post.tid]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user