mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-30 02:25:55 +01:00
fix: #9681, update posts in queue if target tid is merged
This commit is contained in:
@@ -48,9 +48,14 @@ module.exports = function (Posts) {
|
||||
}
|
||||
|
||||
// Filter by tid if present
|
||||
if (isFinite(filter.tid)) {
|
||||
if (utils.isNumber(filter.tid)) {
|
||||
const tid = parseInt(filter.tid, 10);
|
||||
postData = postData.filter(item => item.data.tid && parseInt(item.data.tid, 10) === tid);
|
||||
} else if (Array.isArray(filter.tid)) {
|
||||
const tids = filter.tid.map(tid => parseInt(tid, 10));
|
||||
postData = postData.filter(
|
||||
item => item.data.tid && tids.includes(parseInt(item.data.tid, 10))
|
||||
);
|
||||
}
|
||||
|
||||
return postData;
|
||||
@@ -330,4 +335,18 @@ module.exports = function (Posts) {
|
||||
}
|
||||
return isModerator && isModeratorOfTargetCid;
|
||||
};
|
||||
|
||||
Posts.updateQueuedPostsTopic = async function (newTid, tids) {
|
||||
const postData = await Posts.getQueuedPosts({ tid: tids }, { metadata: false });
|
||||
if (postData.length) {
|
||||
postData.forEach((post) => {
|
||||
post.data.tid = newTid;
|
||||
});
|
||||
await db.setObjectBulk(
|
||||
postData.map(p => `post:queue:${p.id}`),
|
||||
postData.map(p => ({ data: JSON.stringify(p.data) }))
|
||||
);
|
||||
cache.del('post-queue');
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user