mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
refactor: api categories
This commit is contained in:
@@ -162,7 +162,7 @@ define('admin/manage/categories', [
|
|||||||
};
|
};
|
||||||
|
|
||||||
Categories.create = function (payload) {
|
Categories.create = function (payload) {
|
||||||
socket.emit('admin.categories.create', payload, function (err, data) {
|
api.post('/categories', payload, function (err, data) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return app.alertError(err.message);
|
return app.alertError(err.message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -131,7 +131,6 @@ async function buildNamespace(language, namespace) {
|
|||||||
const cache = {};
|
const cache = {};
|
||||||
|
|
||||||
async function getDictionary(language) {
|
async function getDictionary(language) {
|
||||||
console.log('get dictionary', language);
|
|
||||||
if (cache[language]) {
|
if (cache[language]) {
|
||||||
return cache[language];
|
return cache[language];
|
||||||
}
|
}
|
||||||
|
|||||||
28
src/api/categories.js
Normal file
28
src/api/categories.js
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const categories = require('../categories');
|
||||||
|
const events = require('../events');
|
||||||
|
|
||||||
|
const categoriesAPI = module.exports;
|
||||||
|
|
||||||
|
categoriesAPI.create = async function (caller, data) {
|
||||||
|
const response = await categories.create(data);
|
||||||
|
const categoryObjs = await categories.getCategories([response.cid], caller.uid);
|
||||||
|
return categoryObjs[0];
|
||||||
|
};
|
||||||
|
|
||||||
|
categoriesAPI.update = async function (caller, data) {
|
||||||
|
await categories.update(data);
|
||||||
|
};
|
||||||
|
|
||||||
|
categoriesAPI.delete = async function (caller, data) {
|
||||||
|
const name = await categories.getCategoryField(data.cid, 'name');
|
||||||
|
await categories.purge(data.cid, caller.uid);
|
||||||
|
await events.log({
|
||||||
|
type: 'category-purge',
|
||||||
|
uid: caller.uid,
|
||||||
|
ip: caller.ip,
|
||||||
|
cid: data.cid,
|
||||||
|
name: name,
|
||||||
|
});
|
||||||
|
};
|
||||||
@@ -4,4 +4,5 @@ module.exports = {
|
|||||||
users: require('./users'),
|
users: require('./users'),
|
||||||
groups: require('./groups'),
|
groups: require('./groups'),
|
||||||
topics: require('./topics'),
|
topics: require('./topics'),
|
||||||
|
categories: require('./categories'),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,37 +1,26 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const categories = require('../../categories');
|
const categories = require('../../categories');
|
||||||
const events = require('../../events');
|
const api = require('../../api');
|
||||||
|
|
||||||
const helpers = require('../helpers');
|
const helpers = require('../helpers');
|
||||||
|
|
||||||
const Categories = module.exports;
|
const Categories = module.exports;
|
||||||
|
|
||||||
Categories.create = async (req, res) => {
|
Categories.create = async (req, res) => {
|
||||||
const response = await categories.create(req.body);
|
const response = await api.categories.create(req, req.body);
|
||||||
const categoryObjs = await categories.getCategories([response.cid]);
|
helpers.formatApiResponse(200, res, response);
|
||||||
helpers.formatApiResponse(200, res, categoryObjs[0]);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Categories.update = async (req, res) => {
|
Categories.update = async (req, res) => {
|
||||||
const payload = {};
|
const payload = {};
|
||||||
payload[req.params.cid] = req.body;
|
payload[req.params.cid] = req.body;
|
||||||
|
await api.categories.update(req, payload);
|
||||||
await categories.update(payload);
|
|
||||||
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) => {
|
Categories.delete = async (req, res) => {
|
||||||
const name = await categories.getCategoryField(req.params.cid, 'name');
|
await api.categories.delete(req, { cid: req.params.cid });
|
||||||
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);
|
helpers.formatApiResponse(200, res);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ const categories = require('../../categories');
|
|||||||
const privileges = require('../../privileges');
|
const privileges = require('../../privileges');
|
||||||
const plugins = require('../../plugins');
|
const plugins = require('../../plugins');
|
||||||
const events = require('../../events');
|
const events = require('../../events');
|
||||||
|
const api = require('../../api');
|
||||||
const sockets = require('..');
|
const sockets = require('..');
|
||||||
|
|
||||||
const Categories = module.exports;
|
const Categories = module.exports;
|
||||||
@@ -18,8 +19,7 @@ Categories.create = async function (socket, data) {
|
|||||||
if (!data) {
|
if (!data) {
|
||||||
throw new Error('[[error:invalid-data]]');
|
throw new Error('[[error:invalid-data]]');
|
||||||
}
|
}
|
||||||
|
return await api.categories.create(socket, data);
|
||||||
return await categories.create(data);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// DEPRECATED: @1.14.3, remove in version >=1.16
|
// DEPRECATED: @1.14.3, remove in version >=1.16
|
||||||
@@ -42,15 +42,7 @@ Categories.getNames = async function () {
|
|||||||
Categories.purge = async function (socket, cid) {
|
Categories.purge = async function (socket, cid) {
|
||||||
sockets.warnDeprecated(socket, 'DELETE /api/v3/categories/:cid');
|
sockets.warnDeprecated(socket, 'DELETE /api/v3/categories/:cid');
|
||||||
|
|
||||||
const name = await categories.getCategoryField(cid, 'name');
|
await api.categories.delete(socket, { cid: cid });
|
||||||
await categories.purge(cid, socket.uid);
|
|
||||||
await events.log({
|
|
||||||
type: 'category-purge',
|
|
||||||
uid: socket.uid,
|
|
||||||
ip: socket.ip,
|
|
||||||
cid: cid,
|
|
||||||
name: name,
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Categories.update = async function (socket, data) {
|
Categories.update = async function (socket, data) {
|
||||||
@@ -59,8 +51,7 @@ Categories.update = async function (socket, data) {
|
|||||||
if (!data) {
|
if (!data) {
|
||||||
throw new Error('[[error:invalid-data]]');
|
throw new Error('[[error:invalid-data]]');
|
||||||
}
|
}
|
||||||
|
return await api.categories.update(socket, data);
|
||||||
return await categories.update(data);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Categories.setPrivilege = async function (socket, data) {
|
Categories.setPrivilege = async function (socket, data) {
|
||||||
|
|||||||
Reference in New Issue
Block a user