mirror of
https://github.com/vale981/Vulcan
synced 2025-03-10 04:26:41 -04:00
34 lines
No EOL
974 B
JavaScript
34 lines
No EOL
974 B
JavaScript
import Posts from "meteor/nova:posts";
|
|
import Users from 'meteor/nova:users';
|
|
import Categories from "./collection.js";
|
|
|
|
Meteor.methods({
|
|
"categories.deleteById": function (categoryId) {
|
|
|
|
check(categoryId, String);
|
|
|
|
const currentUser = this.userId && Users.findOne(this.userId);
|
|
|
|
if (Users.canDo(currentUser, "categories.remove.all")) {
|
|
|
|
// delete category
|
|
Categories.remove(categoryId);
|
|
|
|
// find any direct children of this category and make them root categories
|
|
Categories.find({parentId: categoryId}).forEach(function (category) {
|
|
Categories.update(category._id, {$unset: {parentId: ""}});
|
|
});
|
|
|
|
// find any posts with this category and remove it
|
|
var postsUpdated = Posts.update({categories: {$in: [categoryId]}}, {$pull: {categories: categoryId}}, {multi: true});
|
|
|
|
return postsUpdated;
|
|
|
|
}
|
|
}
|
|
});
|
|
|
|
Categories.smartMethods({
|
|
createName: "categories.new",
|
|
editName: "categories.edit"
|
|
}); |