mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 08:36:12 +01:00
fix: handle delete and update for categories:name zset
This commit is contained in:
@@ -21,12 +21,17 @@ module.exports = function (Categories) {
|
||||
await async.eachLimit(pinnedTids, 10, async function (tid) {
|
||||
await topics.purgePostsAndTopic(tid, uid);
|
||||
});
|
||||
await purgeCategory(cid);
|
||||
plugins.hooks.fire('action:category.delete', { cid: cid, uid: uid });
|
||||
const categoryData = await Categories.getCategoryData(cid);
|
||||
await purgeCategory(categoryData);
|
||||
plugins.hooks.fire('action:category.delete', { cid: cid, uid: uid, category: categoryData });
|
||||
};
|
||||
|
||||
async function purgeCategory(cid) {
|
||||
await db.sortedSetRemove('categories:cid', cid);
|
||||
async function purgeCategory(categoryData) {
|
||||
const cid = categoryData.cid;
|
||||
await db.sortedSetRemoveBulk([
|
||||
['categories:cid', cid],
|
||||
['categories:name', categoryData.name.substr(0, 200).toLowerCase() + ':' + cid],
|
||||
]);
|
||||
await removeFromParent(cid);
|
||||
await deleteTags(cid);
|
||||
await db.deleteAll([
|
||||
|
||||
@@ -48,7 +48,10 @@ module.exports = function (Categories) {
|
||||
return await updateParent(cid, value);
|
||||
} else if (key === 'tagWhitelist') {
|
||||
return await updateTagWhitelist(cid, value);
|
||||
} else if (key === 'name') {
|
||||
return await updateName(cid, value);
|
||||
}
|
||||
|
||||
await db.setObjectField('category:' + cid, key, value);
|
||||
if (key === 'order') {
|
||||
await updateOrder(cid, value);
|
||||
@@ -95,4 +98,11 @@ module.exports = function (Categories) {
|
||||
const parsedDescription = await plugins.hooks.fire('filter:parse.raw', description);
|
||||
await Categories.setCategoryField(cid, 'descriptionParsed', parsedDescription);
|
||||
};
|
||||
|
||||
async function updateName(cid, newName) {
|
||||
const oldName = await Categories.getCategoryField(cid, 'name');
|
||||
await db.sortedSetRemove('categories:name', oldName.substr(0, 200).toLowerCase() + ':' + cid);
|
||||
await db.sortedSetAdd('categories:name', 0, newName.substr(0, 200).toLowerCase() + ':' + cid);
|
||||
await db.setObjectField('category:' + cid, 'name', newName);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user