mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-02-27 17:11:14 +01:00
feat: added DELETE /api/v1/categories/:cid route
This commit is contained in:
@@ -107,17 +107,18 @@ define('admin/manage/category', [
|
|||||||
});
|
});
|
||||||
}, 1000);
|
}, 1000);
|
||||||
|
|
||||||
socket.emit('admin.categories.purge', ajaxify.data.category.cid, function (err) {
|
$.ajax({
|
||||||
if (err) {
|
url: config.relative_path + '/api/v1/categories/' + ajaxify.data.category.cid,
|
||||||
return app.alertError(err.message);
|
method: 'delete',
|
||||||
}
|
}).done(function () {
|
||||||
|
|
||||||
if (intervalId) {
|
if (intervalId) {
|
||||||
clearInterval(intervalId);
|
clearInterval(intervalId);
|
||||||
}
|
}
|
||||||
modal.modal('hide');
|
modal.modal('hide');
|
||||||
app.alertSuccess('[[admin/manage/categories:alert.purge-success]]');
|
app.alertSuccess('[[admin/manage/categories:alert.purge-success]]');
|
||||||
ajaxify.go('admin/manage/categories');
|
ajaxify.go('admin/manage/categories');
|
||||||
|
}).fail(function (ev) {
|
||||||
|
app.alertError(ev.responseJSON.status.message);
|
||||||
});
|
});
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const categories = require('../../categories');
|
const categories = require('../../categories');
|
||||||
|
const events = require('../../events');
|
||||||
|
|
||||||
const helpers = require('../helpers');
|
const helpers = require('../helpers');
|
||||||
|
|
||||||
@@ -20,3 +21,17 @@ Categories.update = async (req, res) => {
|
|||||||
const categoryObjs = await categories.getCategories([req.params.cid]);
|
const categoryObjs = await categories.getCategories([req.params.cid]);
|
||||||
helpers.formatApiResponse(200, res, categoryObjs[0]);
|
helpers.formatApiResponse(200, res, categoryObjs[0]);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Categories.delete = async (req, res) => {
|
||||||
|
const name = await categories.getCategoryField(req.params.cid, 'name');
|
||||||
|
await Categories.purge(req.params.cid, req.user.uid);
|
||||||
|
await events.log({
|
||||||
|
type: 'category-purge',
|
||||||
|
uid: req.user.uid,
|
||||||
|
ip: req.ip,
|
||||||
|
cid: req.params.cid,
|
||||||
|
name: name,
|
||||||
|
});
|
||||||
|
|
||||||
|
helpers.formatApiResponse(200, res);
|
||||||
|
};
|
||||||
|
|||||||
@@ -10,16 +10,11 @@ const setupApiRoute = routeHelpers.setupApiRoute;
|
|||||||
module.exports = function () {
|
module.exports = function () {
|
||||||
const middlewares = [middleware.authenticate];
|
const middlewares = [middleware.authenticate];
|
||||||
|
|
||||||
setupApiRoute(router, '/', middleware, [...middlewares, middleware.checkRequired.bind(null, ['name'])], 'post', controllers.write.categories.create);
|
setupApiRoute(router, '/', middleware, [...middlewares, middleware.checkRequired.bind(null, ['name']), middleware.isAdmin], 'post', controllers.write.categories.create);
|
||||||
setupApiRoute(router, '/:cid', middleware, [...middlewares], 'put', controllers.write.categories.update);
|
setupApiRoute(router, '/:cid', middleware, [...middlewares, middleware.isAdmin], 'put', controllers.write.categories.update);
|
||||||
|
setupApiRoute(router, '/:cid', middleware, [...middlewares, middleware.isAdmin], 'delete', controllers.write.categories.delete);
|
||||||
// app.route('/:cid')
|
|
||||||
// .delete(apiMiddleware.requireUser, apiMiddleware.requireAdmin, apiMiddleware.validateCid, function(req, res) {
|
|
||||||
// Categories.purge(req.params.cid, req.user.uid, function(err) {
|
|
||||||
// return errorHandler.handle(err, res);
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
// Category disabled state is deprecated, so this route won't be ported over
|
||||||
// app.route('/:cid/state')
|
// app.route('/:cid/state')
|
||||||
// .put(apiMiddleware.requireUser, apiMiddleware.requireAdmin, apiMiddleware.validateCid, function(req, res) {
|
// .put(apiMiddleware.requireUser, apiMiddleware.requireAdmin, apiMiddleware.validateCid, function(req, res) {
|
||||||
// var payload = {};
|
// var payload = {};
|
||||||
|
|||||||
@@ -40,6 +40,8 @@ Categories.getNames = async function () {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Categories.purge = async function (socket, cid) {
|
Categories.purge = async function (socket, cid) {
|
||||||
|
sockets.warnDeprecated(socket, 'DELETE /api/v1/categories/:cid');
|
||||||
|
|
||||||
const name = await categories.getCategoryField(cid, 'name');
|
const name = await categories.getCategoryField(cid, 'name');
|
||||||
await categories.purge(cid, socket.uid);
|
await categories.purge(cid, socket.uid);
|
||||||
await events.log({
|
await events.log({
|
||||||
|
|||||||
Reference in New Issue
Block a user