From 49b79e6a98364af7dbd48f0d679edc257f047339 Mon Sep 17 00:00:00 2001 From: Jose Alfonzo Date: Fri, 11 Oct 2024 10:00:08 -0400 Subject: [PATCH 1/4] Corregir importacion de archivos y agregar el tipado --- src/controllers/write/categories.js | 357 ++++++++++++++++++++-------- src/controllers/write/categories.ts | 107 +++++++++ 2 files changed, 361 insertions(+), 103 deletions(-) create mode 100644 src/controllers/write/categories.ts diff --git a/src/controllers/write/categories.js b/src/controllers/write/categories.js index bb4ec84090..0092b13220 100644 --- a/src/controllers/write/categories.js +++ b/src/controllers/write/categories.js @@ -1,107 +1,258 @@ 'use strict'; - -const categories = require('../../categories'); -const meta = require('../../meta'); -const api = require('../../api'); - -const helpers = require('../helpers'); - -const Categories = module.exports; - -Categories.list = async (req, res) => { - helpers.formatApiResponse(200, res, await api.categories.list(req)); +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); }; - -Categories.get = async (req, res) => { - helpers.formatApiResponse(200, res, await api.categories.get(req, req.params)); +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); }; - -Categories.create = async (req, res) => { - const response = await api.categories.create(req, req.body); - helpers.formatApiResponse(200, res, response); -}; - -Categories.update = async (req, res) => { - await api.categories.update(req, { - cid: req.params.cid, - values: req.body, - }); - - const categoryObjs = await categories.getCategories([req.params.cid]); - helpers.formatApiResponse(200, res, categoryObjs[0]); -}; - -Categories.delete = async (req, res) => { - await api.categories.delete(req, { cid: req.params.cid }); - helpers.formatApiResponse(200, res); -}; - -Categories.getTopicCount = async (req, res) => { - helpers.formatApiResponse(200, res, await api.categories.getTopicCount(req, { ...req.params })); -}; - -Categories.getPosts = async (req, res) => { - const posts = await api.categories.getPosts(req, { ...req.params }); - helpers.formatApiResponse(200, res, { posts }); -}; - -Categories.getChildren = async (req, res) => { - const { cid } = req.params; - const { start } = req.query; - helpers.formatApiResponse(200, res, await api.categories.getChildren(req, { cid, start })); -}; - -Categories.getTopics = async (req, res) => { - const { cid } = req.params; - const result = await api.categories.getTopics(req, { ...req.query, cid }); - - helpers.formatApiResponse(200, res, result); -}; - -Categories.setWatchState = async (req, res) => { - const { cid } = req.params; - let { uid, state } = req.body; - - if (req.method === 'DELETE') { - // DELETE is always setting state to system default in acp - state = categories.watchStates[meta.config.categoryWatchState]; - } else if (Object.keys(categories.watchStates).includes(state)) { - state = categories.watchStates[state]; // convert to integer for backend processing - } else { - throw new Error('[[error:invalid-data]]'); - } - - const { cids: modified } = await api.categories.setWatchState(req, { cid, state, uid }); - - helpers.formatApiResponse(200, res, { modified }); -}; - -Categories.getPrivileges = async (req, res) => { - const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); - helpers.formatApiResponse(200, res, privilegeSet); -}; - -Categories.setPrivilege = async (req, res) => { - const { cid, privilege } = req.params; - - await api.categories.setPrivilege(req, { - cid, - privilege, - member: req.body.member, - set: req.method === 'PUT', - }); - - const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); - helpers.formatApiResponse(200, res, privilegeSet); -}; - -Categories.setModerator = async (req, res) => { - await api.categories.setModerator(req, { - cid: req.params.cid, - member: req.params.uid, - set: req.method === 'PUT', - }); - - const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); - helpers.formatApiResponse(200, res, privilegeSet); +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } }; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Categories = void 0; +var categories_1 = require("../../categories"); +var meta_1 = require("../../meta"); +var api_1 = require("../../api"); +var helpers_1 = require("../helpers"); +exports.Categories = {}; +exports.Categories.list = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { + var _a, _b, _c; + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + _b = (_a = helpers_1.default).formatApiResponse; + _c = [200, res]; + return [4 /*yield*/, api_1.default.categories.list(req)]; + case 1: + _b.apply(_a, _c.concat([_d.sent()])); + return [2 /*return*/]; + } + }); +}); }; +exports.Categories.get = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { + var _a, _b, _c; + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + _b = (_a = helpers_1.default).formatApiResponse; + _c = [200, res]; + return [4 /*yield*/, api_1.default.categories.get(req, req.params)]; + case 1: + _b.apply(_a, _c.concat([_d.sent()])); + return [2 /*return*/]; + } + }); +}); }; +exports.Categories.create = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { + var response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, api_1.default.categories.create(req, req.body)]; + case 1: + response = _a.sent(); + helpers_1.default.formatApiResponse(200, res, response); + return [2 /*return*/]; + } + }); +}); }; +exports.Categories.update = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { + var categoryObjs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, api_1.default.categories.update(req, { + cid: req.params.cid, + values: req.body, + })]; + case 1: + _a.sent(); + return [4 /*yield*/, categories_1.default.getCategories([req.params.cid])]; + case 2: + categoryObjs = _a.sent(); + helpers_1.default.formatApiResponse(200, res, categoryObjs[0]); + return [2 /*return*/]; + } + }); +}); }; +exports.Categories.delete = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, api_1.default.categories.delete(req, { cid: req.params.cid })]; + case 1: + _a.sent(); + helpers_1.default.formatApiResponse(200, res); + return [2 /*return*/]; + } + }); +}); }; +exports.Categories.getTopicCount = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { + var _a, _b, _c; + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + _b = (_a = helpers_1.default).formatApiResponse; + _c = [200, res]; + return [4 /*yield*/, api_1.default.categories.getTopicCount(req, __assign({}, req.params))]; + case 1: + _b.apply(_a, _c.concat([_d.sent()])); + return [2 /*return*/]; + } + }); +}); }; +exports.Categories.getPosts = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { + var posts; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, api_1.default.categories.getPosts(req, __assign({}, req.params))]; + case 1: + posts = _a.sent(); + helpers_1.default.formatApiResponse(200, res, { posts: posts }); + return [2 /*return*/]; + } + }); +}); }; +exports.Categories.getChildren = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { + var cid, start, _a, _b, _c; + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + cid = req.params.cid; + start = req.query.start; + _b = (_a = helpers_1.default).formatApiResponse; + _c = [200, res]; + return [4 /*yield*/, api_1.default.categories.getChildren(req, { cid: cid, start: start })]; + case 1: + _b.apply(_a, _c.concat([_d.sent()])); + return [2 /*return*/]; + } + }); +}); }; +exports.Categories.getTopics = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { + var cid, result; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + cid = req.params.cid; + return [4 /*yield*/, api_1.default.categories.getTopics(req, __assign(__assign({}, req.query), { cid: cid }))]; + case 1: + result = _a.sent(); + helpers_1.default.formatApiResponse(200, res, result); + return [2 /*return*/]; + } + }); +}); }; +exports.Categories.setWatchState = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { + var cid, _a, uid, state, modified; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + cid = req.params.cid; + _a = req.body, uid = _a.uid, state = _a.state; + if (req.method === 'DELETE') { + // DELETE is always setting state to system default in acp + state = categories_1.default.watchStates[meta_1.default.config.categoryWatchState]; + } + else if (Object.keys(categories_1.default.watchStates).includes(state)) { + state = categories_1.default.watchStates[state]; // convert to integer for backend processing + } + else { + throw new Error('[[error:invalid-data]]'); + } + return [4 /*yield*/, api_1.default.categories.setWatchState(req, { cid: cid, state: state, uid: uid })]; + case 1: + modified = (_b.sent()).cids; + helpers_1.default.formatApiResponse(200, res, { modified: modified }); + return [2 /*return*/]; + } + }); +}); }; +exports.Categories.getPrivileges = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { + var privilegeSet; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, api_1.default.categories.getPrivileges(req, { cid: req.params.cid })]; + case 1: + privilegeSet = _a.sent(); + helpers_1.default.formatApiResponse(200, res, privilegeSet); + return [2 /*return*/]; + } + }); +}); }; +exports.Categories.setPrivilege = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { + var _a, cid, privilege, privilegeSet; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + _a = req.params, cid = _a.cid, privilege = _a.privilege; + return [4 /*yield*/, api_1.default.categories.setPrivilege(req, { + cid: cid, + privilege: privilege, + member: req.body.member, + set: req.method === 'PUT', + })]; + case 1: + _b.sent(); + return [4 /*yield*/, api_1.default.categories.getPrivileges(req, { cid: req.params.cid })]; + case 2: + privilegeSet = _b.sent(); + helpers_1.default.formatApiResponse(200, res, privilegeSet); + return [2 /*return*/]; + } + }); +}); }; +exports.Categories.setModerator = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { + var privilegeSet; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, api_1.default.categories.setModerator(req, { + cid: req.params.cid, + member: req.params.uid, + set: req.method === 'PUT', + })]; + case 1: + _a.sent(); + return [4 /*yield*/, api_1.default.categories.getPrivileges(req, { cid: req.params.cid })]; + case 2: + privilegeSet = _a.sent(); + helpers_1.default.formatApiResponse(200, res, privilegeSet); + return [2 /*return*/]; + } + }); +}); }; diff --git a/src/controllers/write/categories.ts b/src/controllers/write/categories.ts new file mode 100644 index 0000000000..a178712987 --- /dev/null +++ b/src/controllers/write/categories.ts @@ -0,0 +1,107 @@ +'use strict'; + +import categories from '../../categories'; +import meta from '../../meta'; +import api from '../../api'; + +import helpers from '../helpers'; + +export const Categories: any = {}; + +Categories.list = async (req: any, res: any) => { + helpers.formatApiResponse(200, res, await api.categories.list(req)); +}; + +Categories.get = async (req: any, res: any) => { + helpers.formatApiResponse(200, res, await api.categories.get(req, req.params)); +}; + +Categories.create = async (req: any, res: any) => { + const response = await api.categories.create(req, req.body); + helpers.formatApiResponse(200, res, response); +}; + +Categories.update = async (req: any, res: any) => { + await api.categories.update(req, { + cid: req.params.cid, + values: req.body, + }); + + const categoryObjs = await categories.getCategories([req.params.cid]); + helpers.formatApiResponse(200, res, categoryObjs[0]); +}; + +Categories.delete = async (req: any, res: any) => { + await api.categories.delete(req, { cid: req.params.cid }); + helpers.formatApiResponse(200, res); +}; + +Categories.getTopicCount = async (req: any, res: any) => { + helpers.formatApiResponse(200, res, await api.categories.getTopicCount(req, { ...req.params })); +}; + +Categories.getPosts = async (req: any, res: any) => { + const posts = await api.categories.getPosts(req, { ...req.params }); + helpers.formatApiResponse(200, res, { posts }); +}; + +Categories.getChildren = async (req: any, res: any) => { + const { cid } = req.params; + const { start } = req.query; + helpers.formatApiResponse(200, res, await api.categories.getChildren(req, { cid, start })); +}; + +Categories.getTopics = async (req: any, res: any) => { + const { cid } = req.params; + const result = await api.categories.getTopics(req, { ...req.query, cid }); + + helpers.formatApiResponse(200, res, result); +}; + +Categories.setWatchState = async (req: any, res: any) => { + const { cid } = req.params; + let { uid, state } = req.body; + + if (req.method === 'DELETE') { + // DELETE is always setting state to system default in acp + state = categories.watchStates[meta.config.categoryWatchState]; + } else if (Object.keys(categories.watchStates).includes(state)) { + state = categories.watchStates[state]; // convert to integer for backend processing + } else { + throw new Error('[[error:invalid-data]]'); + } + + const { cids: modified } = await api.categories.setWatchState(req, { cid, state, uid }); + + helpers.formatApiResponse(200, res, { modified }); +}; + +Categories.getPrivileges = async (req: any, res: any) => { + const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); + helpers.formatApiResponse(200, res, privilegeSet); +}; + +Categories.setPrivilege = async (req: any, res: any) => { + const { cid, privilege } = req.params; + + await api.categories.setPrivilege(req, { + cid, + privilege, + member: req.body.member, + set: req.method === 'PUT', + }); + + const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); + helpers.formatApiResponse(200, res, privilegeSet); +}; + +Categories.setModerator = async (req: any, res: any) => { + await api.categories.setModerator(req, { + cid: req.params.cid, + member: req.params.uid, + set: req.method === 'PUT', + }); + + const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); + helpers.formatApiResponse(200, res, privilegeSet); +}; From a93ba73d0fb27a66d09a7bd672bfe87e8af73f42 Mon Sep 17 00:00:00 2001 From: Jose Alfonzo Date: Sat, 12 Oct 2024 15:04:43 -0400 Subject: [PATCH 2/4] Agregar interfaces al .ts. Posee 21 errores de eslint que no se arreglaron con npm run lint -- --fix --- src/controllers/write/categories.js | 329 +++++++--------------------- src/controllers/write/categories.ts | 215 +++++++++--------- src/dummy.js | 0 3 files changed, 200 insertions(+), 344 deletions(-) create mode 100644 src/dummy.js diff --git a/src/controllers/write/categories.js b/src/controllers/write/categories.js index 0092b13220..e11d421362 100644 --- a/src/controllers/write/categories.js +++ b/src/controllers/write/categories.js @@ -1,15 +1,4 @@ -'use strict'; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; +"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { @@ -19,240 +8,92 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); - return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.Categories = void 0; -var categories_1 = require("../../categories"); -var meta_1 = require("../../meta"); -var api_1 = require("../../api"); -var helpers_1 = require("../helpers"); -exports.Categories = {}; -exports.Categories.list = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { - var _a, _b, _c; - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - _b = (_a = helpers_1.default).formatApiResponse; - _c = [200, res]; - return [4 /*yield*/, api_1.default.categories.list(req)]; - case 1: - _b.apply(_a, _c.concat([_d.sent()])); - return [2 /*return*/]; - } - }); -}); }; -exports.Categories.get = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { - var _a, _b, _c; - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - _b = (_a = helpers_1.default).formatApiResponse; - _c = [200, res]; - return [4 /*yield*/, api_1.default.categories.get(req, req.params)]; - case 1: - _b.apply(_a, _c.concat([_d.sent()])); - return [2 /*return*/]; - } - }); -}); }; -exports.Categories.create = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { - var response; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, api_1.default.categories.create(req, req.body)]; - case 1: - response = _a.sent(); - helpers_1.default.formatApiResponse(200, res, response); - return [2 /*return*/]; - } - }); -}); }; -exports.Categories.update = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { - var categoryObjs; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, api_1.default.categories.update(req, { - cid: req.params.cid, - values: req.body, - })]; - case 1: - _a.sent(); - return [4 /*yield*/, categories_1.default.getCategories([req.params.cid])]; - case 2: - categoryObjs = _a.sent(); - helpers_1.default.formatApiResponse(200, res, categoryObjs[0]); - return [2 /*return*/]; - } - }); -}); }; -exports.Categories.delete = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, api_1.default.categories.delete(req, { cid: req.params.cid })]; - case 1: - _a.sent(); - helpers_1.default.formatApiResponse(200, res); - return [2 /*return*/]; - } - }); -}); }; -exports.Categories.getTopicCount = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { - var _a, _b, _c; - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - _b = (_a = helpers_1.default).formatApiResponse; - _c = [200, res]; - return [4 /*yield*/, api_1.default.categories.getTopicCount(req, __assign({}, req.params))]; - case 1: - _b.apply(_a, _c.concat([_d.sent()])); - return [2 /*return*/]; - } - }); -}); }; -exports.Categories.getPosts = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { - var posts; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, api_1.default.categories.getPosts(req, __assign({}, req.params))]; - case 1: - posts = _a.sent(); - helpers_1.default.formatApiResponse(200, res, { posts: posts }); - return [2 /*return*/]; - } - }); -}); }; -exports.Categories.getChildren = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { - var cid, start, _a, _b, _c; - return __generator(this, function (_d) { - switch (_d.label) { - case 0: - cid = req.params.cid; - start = req.query.start; - _b = (_a = helpers_1.default).formatApiResponse; - _c = [200, res]; - return [4 /*yield*/, api_1.default.categories.getChildren(req, { cid: cid, start: start })]; - case 1: - _b.apply(_a, _c.concat([_d.sent()])); - return [2 /*return*/]; +const categories_1 = __importDefault(require("../../categories")); +const meta_1 = __importDefault(require("../../meta")); +const api_1 = __importDefault(require("../../api")); +const helpers_1 = __importDefault(require("../helpers")); +const Categories = { + list: (req, res) => __awaiter(void 0, void 0, void 0, function* () { + yield helpers_1.default.formatApiResponse(200, res, yield api_1.default.categories.list(req)); + }), + get: (req, res) => __awaiter(void 0, void 0, void 0, function* () { + yield helpers_1.default.formatApiResponse(200, res, yield api_1.default.categories.get(req, req.params)); + }), + create: (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const response = yield api_1.default.categories.create(req, req.body); + yield helpers_1.default.formatApiResponse(200, res, response); + }), + update: (req, res) => __awaiter(void 0, void 0, void 0, function* () { + yield api_1.default.categories.update(req, { + cid: req.params.cid, + values: req.body, + }); + const categoryObjs = yield categories_1.default.getCategories([req.params.cid]); + yield helpers_1.default.formatApiResponse(200, res, categoryObjs[0]); + }), + delete: (req, res) => __awaiter(void 0, void 0, void 0, function* () { + yield api_1.default.categories.delete(req, { cid: req.params.cid }); + yield helpers_1.default.formatApiResponse(200, res); + }), + getTopicCount: (req, res) => __awaiter(void 0, void 0, void 0, function* () { + yield helpers_1.default.formatApiResponse(200, res, yield api_1.default.categories.getTopicCount(req, Object.assign({}, req.params))); + }), + getPosts: (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const posts = yield api_1.default.categories.getPosts(req, Object.assign({}, req.params)); + yield helpers_1.default.formatApiResponse(200, res, { posts }); + }), + getChildren: (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const { cid } = req.params; + const { start } = req.query; + yield helpers_1.default.formatApiResponse(200, res, yield api_1.default.categories.getChildren(req, { cid, start })); + }), + getTopics: (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const { cid } = req.params; + const result = yield api_1.default.categories.getTopics(req, Object.assign(Object.assign({}, req.query), { cid })); + yield helpers_1.default.formatApiResponse(200, res, result); + }), + setWatchState: (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const { cid } = req.params; + let { uid, state } = req.body; + if (req.method === 'DELETE') { + state = categories_1.default.watchStates[meta_1.default.config.categoryWatchState]; } - }); -}); }; -exports.Categories.getTopics = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { - var cid, result; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - cid = req.params.cid; - return [4 /*yield*/, api_1.default.categories.getTopics(req, __assign(__assign({}, req.query), { cid: cid }))]; - case 1: - result = _a.sent(); - helpers_1.default.formatApiResponse(200, res, result); - return [2 /*return*/]; + else if (Object.keys(categories_1.default.watchStates).includes(state)) { + state = categories_1.default.watchStates[state]; } - }); -}); }; -exports.Categories.setWatchState = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { - var cid, _a, uid, state, modified; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - cid = req.params.cid; - _a = req.body, uid = _a.uid, state = _a.state; - if (req.method === 'DELETE') { - // DELETE is always setting state to system default in acp - state = categories_1.default.watchStates[meta_1.default.config.categoryWatchState]; - } - else if (Object.keys(categories_1.default.watchStates).includes(state)) { - state = categories_1.default.watchStates[state]; // convert to integer for backend processing - } - else { - throw new Error('[[error:invalid-data]]'); - } - return [4 /*yield*/, api_1.default.categories.setWatchState(req, { cid: cid, state: state, uid: uid })]; - case 1: - modified = (_b.sent()).cids; - helpers_1.default.formatApiResponse(200, res, { modified: modified }); - return [2 /*return*/]; - } - }); -}); }; -exports.Categories.getPrivileges = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { - var privilegeSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, api_1.default.categories.getPrivileges(req, { cid: req.params.cid })]; - case 1: - privilegeSet = _a.sent(); - helpers_1.default.formatApiResponse(200, res, privilegeSet); - return [2 /*return*/]; + else { + throw new Error('[[error:invalid-data]]'); } - }); -}); }; -exports.Categories.setPrivilege = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { - var _a, cid, privilege, privilegeSet; - return __generator(this, function (_b) { - switch (_b.label) { - case 0: - _a = req.params, cid = _a.cid, privilege = _a.privilege; - return [4 /*yield*/, api_1.default.categories.setPrivilege(req, { - cid: cid, - privilege: privilege, - member: req.body.member, - set: req.method === 'PUT', - })]; - case 1: - _b.sent(); - return [4 /*yield*/, api_1.default.categories.getPrivileges(req, { cid: req.params.cid })]; - case 2: - privilegeSet = _b.sent(); - helpers_1.default.formatApiResponse(200, res, privilegeSet); - return [2 /*return*/]; - } - }); -}); }; -exports.Categories.setModerator = function (req, res) { return __awaiter(void 0, void 0, void 0, function () { - var privilegeSet; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, api_1.default.categories.setModerator(req, { - cid: req.params.cid, - member: req.params.uid, - set: req.method === 'PUT', - })]; - case 1: - _a.sent(); - return [4 /*yield*/, api_1.default.categories.getPrivileges(req, { cid: req.params.cid })]; - case 2: - privilegeSet = _a.sent(); - helpers_1.default.formatApiResponse(200, res, privilegeSet); - return [2 /*return*/]; - } - }); -}); }; + const { cids: modified } = yield api_1.default.categories.setWatchState(req, { cid, state, uid }); + yield helpers_1.default.formatApiResponse(200, res, { modified }); + }), + getPrivileges: (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const privilegeSet = yield api_1.default.categories.getPrivileges(req, { cid: req.params.cid }); + yield helpers_1.default.formatApiResponse(200, res, privilegeSet); + }), + setPrivilege: (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const { cid, privilege } = req.params; + yield api_1.default.categories.setPrivilege(req, { + cid, + privilege, + member: req.body.member, + set: req.method === 'PUT', + }); + const privilegeSet = yield api_1.default.categories.getPrivileges(req, { cid: req.params.cid }); + yield helpers_1.default.formatApiResponse(200, res, privilegeSet); + }), + setModerator: (req, res) => __awaiter(void 0, void 0, void 0, function* () { + yield api_1.default.categories.setModerator(req, { + cid: req.params.cid, + member: req.params.uid, + set: req.method === 'PUT', + }); + const privilegeSet = yield api_1.default.categories.getPrivileges(req, { cid: req.params.cid }); + yield helpers_1.default.formatApiResponse(200, res, privilegeSet); + }), +}; +exports.default = Categories; diff --git a/src/controllers/write/categories.ts b/src/controllers/write/categories.ts index a178712987..71f4b3b926 100644 --- a/src/controllers/write/categories.ts +++ b/src/controllers/write/categories.ts @@ -1,107 +1,122 @@ -'use strict'; - import categories from '../../categories'; import meta from '../../meta'; import api from '../../api'; - import helpers from '../helpers'; -export const Categories: any = {}; - -Categories.list = async (req: any, res: any) => { - helpers.formatApiResponse(200, res, await api.categories.list(req)); -}; - -Categories.get = async (req: any, res: any) => { - helpers.formatApiResponse(200, res, await api.categories.get(req, req.params)); -}; - -Categories.create = async (req: any, res: any) => { - const response = await api.categories.create(req, req.body); - helpers.formatApiResponse(200, res, response); -}; - -Categories.update = async (req: any, res: any) => { - await api.categories.update(req, { - cid: req.params.cid, - values: req.body, - }); - - const categoryObjs = await categories.getCategories([req.params.cid]); - helpers.formatApiResponse(200, res, categoryObjs[0]); -}; - -Categories.delete = async (req: any, res: any) => { - await api.categories.delete(req, { cid: req.params.cid }); - helpers.formatApiResponse(200, res); -}; - -Categories.getTopicCount = async (req: any, res: any) => { - helpers.formatApiResponse(200, res, await api.categories.getTopicCount(req, { ...req.params })); -}; - -Categories.getPosts = async (req: any, res: any) => { - const posts = await api.categories.getPosts(req, { ...req.params }); - helpers.formatApiResponse(200, res, { posts }); -}; - -Categories.getChildren = async (req: any, res: any) => { - const { cid } = req.params; - const { start } = req.query; - helpers.formatApiResponse(200, res, await api.categories.getChildren(req, { cid, start })); -}; - -Categories.getTopics = async (req: any, res: any) => { - const { cid } = req.params; - const result = await api.categories.getTopics(req, { ...req.query, cid }); - - helpers.formatApiResponse(200, res, result); -}; - -Categories.setWatchState = async (req: any, res: any) => { - const { cid } = req.params; - let { uid, state } = req.body; - - if (req.method === 'DELETE') { - // DELETE is always setting state to system default in acp - state = categories.watchStates[meta.config.categoryWatchState]; - } else if (Object.keys(categories.watchStates).includes(state)) { - state = categories.watchStates[state]; // convert to integer for backend processing - } else { - throw new Error('[[error:invalid-data]]'); - } - - const { cids: modified } = await api.categories.setWatchState(req, { cid, state, uid }); - - helpers.formatApiResponse(200, res, { modified }); +interface Params { + cid: string; + privilege?: string; + uid?: string; +} + +interface Request { + params: Params; + body: any; + query: { start?: number }; + method: string; +} + +interface Response { + status: (code: number) => void; + json: (data: any) => void; +} + +const Categories = { + list: async (req: Request, res: Response) => { + await helpers.formatApiResponse(200, res, await api.categories.list(req)); + }, + + get: async (req: Request, res: Response) => { + await helpers.formatApiResponse(200, res, await api.categories.get(req, req.params)); + }, + + create: async (req: Request, res: Response) => { + const response = await api.categories.create(req, req.body); + await helpers.formatApiResponse(200, res, response); + }, + + update: async (req: Request, res: Response) => { + await api.categories.update(req, { + cid: req.params.cid, + values: req.body, + }); + + const categoryObjs = await categories.getCategories([req.params.cid]); + await helpers.formatApiResponse(200, res, categoryObjs[0]); + }, + + delete: async (req: Request, res: Response) => { + await api.categories.delete(req, { cid: req.params.cid }); + await helpers.formatApiResponse(200, res); + }, + + getTopicCount: async (req: Request, res: Response) => { + await helpers.formatApiResponse(200, res, await api.categories.getTopicCount(req, { ...req.params })); + }, + + getPosts: async (req: Request, res: Response) => { + const posts = await api.categories.getPosts(req, { ...req.params }); + await helpers.formatApiResponse(200, res, { posts }); + }, + + getChildren: async (req: Request, res: Response) => { + const { cid } = req.params; + const { start } = req.query; + await helpers.formatApiResponse(200, res, await api.categories.getChildren(req, { cid, start })); + }, + + getTopics: async (req: Request, res: Response) => { + const { cid } = req.params; + const result = await api.categories.getTopics(req, { ...req.query, cid }); + + await helpers.formatApiResponse(200, res, result); + }, + + setWatchState: async (req: Request, res: Response) => { + const { cid } = req.params; + let { uid, state } = req.body; + + if (req.method === 'DELETE') { + state = categories.watchStates[meta.config.categoryWatchState]; + } else if (Object.keys(categories.watchStates).includes(state)) { + state = categories.watchStates[state]; + } else { + throw new Error('[[error:invalid-data]]'); + } + + const { cids: modified } = await api.categories.setWatchState(req, { cid, state, uid }); + await helpers.formatApiResponse(200, res, { modified }); + }, + + getPrivileges: async (req: Request, res: Response) => { + const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); + await helpers.formatApiResponse(200, res, privilegeSet); + }, + + setPrivilege: async (req: Request, res: Response) => { + const { cid, privilege } = req.params; + + await api.categories.setPrivilege(req, { + cid, + privilege, + member: req.body.member, + set: req.method === 'PUT', + }); + + const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); + await helpers.formatApiResponse(200, res, privilegeSet); + }, + + setModerator: async (req: Request, res: Response) => { + await api.categories.setModerator(req, { + cid: req.params.cid, + member: req.params.uid, + set: req.method === 'PUT', + }); + + const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); + await helpers.formatApiResponse(200, res, privilegeSet); + }, }; -Categories.getPrivileges = async (req: any, res: any) => { - const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); - helpers.formatApiResponse(200, res, privilegeSet); -}; - -Categories.setPrivilege = async (req: any, res: any) => { - const { cid, privilege } = req.params; - - await api.categories.setPrivilege(req, { - cid, - privilege, - member: req.body.member, - set: req.method === 'PUT', - }); - - const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); - helpers.formatApiResponse(200, res, privilegeSet); -}; - -Categories.setModerator = async (req: any, res: any) => { - await api.categories.setModerator(req, { - cid: req.params.cid, - member: req.params.uid, - set: req.method === 'PUT', - }); - - const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); - helpers.formatApiResponse(200, res, privilegeSet); -}; +export default Categories; diff --git a/src/dummy.js b/src/dummy.js new file mode 100644 index 0000000000..e69de29bb2 From 87f30441974e42045e63fd2df42ba0e802862bc0 Mon Sep 17 00:00:00 2001 From: Jose Alfonzo Date: Sun, 13 Oct 2024 15:33:24 -0400 Subject: [PATCH 3/4] Corregido el archivo tsconfig.json, arreglado el .ts ,modificados los exports y los valores de retornos para pasar el run test --- src/controllers/write/categories.js | 188 +++++++++++++------------- src/controllers/write/categories.ts | 200 ++++++++++++++-------------- tsconfig.json | 6 +- 3 files changed, 205 insertions(+), 189 deletions(-) diff --git a/src/controllers/write/categories.js b/src/controllers/write/categories.js index e11d421362..32510c50ad 100644 --- a/src/controllers/write/categories.js +++ b/src/controllers/write/categories.js @@ -1,99 +1,109 @@ "use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.delete = exports.setModerator = exports.setPrivilege = exports.getPrivileges = exports.setWatchState = exports.getTopics = exports.getChildren = exports.getPosts = exports.getTopicCount = exports.deleteCategories = exports.update = exports.create = exports.get = exports.list = void 0; const categories_1 = __importDefault(require("../../categories")); const meta_1 = __importDefault(require("../../meta")); const api_1 = __importDefault(require("../../api")); const helpers_1 = __importDefault(require("../helpers")); -const Categories = { - list: (req, res) => __awaiter(void 0, void 0, void 0, function* () { - yield helpers_1.default.formatApiResponse(200, res, yield api_1.default.categories.list(req)); - }), - get: (req, res) => __awaiter(void 0, void 0, void 0, function* () { - yield helpers_1.default.formatApiResponse(200, res, yield api_1.default.categories.get(req, req.params)); - }), - create: (req, res) => __awaiter(void 0, void 0, void 0, function* () { - const response = yield api_1.default.categories.create(req, req.body); - yield helpers_1.default.formatApiResponse(200, res, response); - }), - update: (req, res) => __awaiter(void 0, void 0, void 0, function* () { - yield api_1.default.categories.update(req, { - cid: req.params.cid, - values: req.body, - }); - const categoryObjs = yield categories_1.default.getCategories([req.params.cid]); - yield helpers_1.default.formatApiResponse(200, res, categoryObjs[0]); - }), - delete: (req, res) => __awaiter(void 0, void 0, void 0, function* () { - yield api_1.default.categories.delete(req, { cid: req.params.cid }); - yield helpers_1.default.formatApiResponse(200, res); - }), - getTopicCount: (req, res) => __awaiter(void 0, void 0, void 0, function* () { - yield helpers_1.default.formatApiResponse(200, res, yield api_1.default.categories.getTopicCount(req, Object.assign({}, req.params))); - }), - getPosts: (req, res) => __awaiter(void 0, void 0, void 0, function* () { - const posts = yield api_1.default.categories.getPosts(req, Object.assign({}, req.params)); - yield helpers_1.default.formatApiResponse(200, res, { posts }); - }), - getChildren: (req, res) => __awaiter(void 0, void 0, void 0, function* () { - const { cid } = req.params; - const { start } = req.query; - yield helpers_1.default.formatApiResponse(200, res, yield api_1.default.categories.getChildren(req, { cid, start })); - }), - getTopics: (req, res) => __awaiter(void 0, void 0, void 0, function* () { - const { cid } = req.params; - const result = yield api_1.default.categories.getTopics(req, Object.assign(Object.assign({}, req.query), { cid })); - yield helpers_1.default.formatApiResponse(200, res, result); - }), - setWatchState: (req, res) => __awaiter(void 0, void 0, void 0, function* () { - const { cid } = req.params; - let { uid, state } = req.body; - if (req.method === 'DELETE') { - state = categories_1.default.watchStates[meta_1.default.config.categoryWatchState]; - } - else if (Object.keys(categories_1.default.watchStates).includes(state)) { - state = categories_1.default.watchStates[state]; - } - else { - throw new Error('[[error:invalid-data]]'); - } - const { cids: modified } = yield api_1.default.categories.setWatchState(req, { cid, state, uid }); - yield helpers_1.default.formatApiResponse(200, res, { modified }); - }), - getPrivileges: (req, res) => __awaiter(void 0, void 0, void 0, function* () { - const privilegeSet = yield api_1.default.categories.getPrivileges(req, { cid: req.params.cid }); - yield helpers_1.default.formatApiResponse(200, res, privilegeSet); - }), - setPrivilege: (req, res) => __awaiter(void 0, void 0, void 0, function* () { - const { cid, privilege } = req.params; - yield api_1.default.categories.setPrivilege(req, { - cid, - privilege, - member: req.body.member, - set: req.method === 'PUT', - }); - const privilegeSet = yield api_1.default.categories.getPrivileges(req, { cid: req.params.cid }); - yield helpers_1.default.formatApiResponse(200, res, privilegeSet); - }), - setModerator: (req, res) => __awaiter(void 0, void 0, void 0, function* () { - yield api_1.default.categories.setModerator(req, { - cid: req.params.cid, - member: req.params.uid, - set: req.method === 'PUT', - }); - const privilegeSet = yield api_1.default.categories.getPrivileges(req, { cid: req.params.cid }); - yield helpers_1.default.formatApiResponse(200, res, privilegeSet); - }), +const list = async (req, res) => { + await helpers_1.default.formatApiResponse(200, res, await api_1.default.categories.list(req)); +}; +exports.list = list; +const get = async (req, res) => { + await helpers_1.default.formatApiResponse(200, res, await api_1.default.categories.get(req, req.params)); +}; +exports.get = get; +const create = async (req, res) => { + const response = await api_1.default.categories.create(req, req.body); + await helpers_1.default.formatApiResponse(200, res, response); +}; +exports.create = create; +const update = async (req, res) => { + await api_1.default.categories.update(req, { + cid: req.params.cid, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + values: req.body, + }); + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access + const categoryObjs = await categories_1.default.getCategories([req.params.cid]); + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access + await helpers_1.default.formatApiResponse(200, res, categoryObjs[0]); +}; +exports.update = update; +const deleteCategories = async (req, res) => { + await api_1.default.categories.delete(req, { cid: req.params.cid }); + await helpers_1.default.formatApiResponse(200, res); +}; +exports.deleteCategories = deleteCategories; +exports.delete = exports.deleteCategories; +const getTopicCount = async (req, res) => { + await helpers_1.default.formatApiResponse(200, res, await api_1.default.categories.getTopicCount(req, Object.assign({}, req.params))); +}; +exports.getTopicCount = getTopicCount; +const getPosts = async (req, res) => { + const posts = await api_1.default.categories.getPosts(req, Object.assign({}, req.params)); + await helpers_1.default.formatApiResponse(200, res, { posts }); +}; +exports.getPosts = getPosts; +const getChildren = async (req, res) => { + const { cid } = req.params; + const { start } = req.query; + await helpers_1.default.formatApiResponse(200, res, await api_1.default.categories.getChildren(req, { cid, start })); +}; +exports.getChildren = getChildren; +const getTopics = async (req, res) => { + const { cid } = req.params; + const result = await api_1.default.categories.getTopics(req, Object.assign(Object.assign({}, req.query), { cid })); + await helpers_1.default.formatApiResponse(200, res, result); +}; +exports.getTopics = getTopics; +const setWatchState = async (req, res) => { + const { cid } = req.params; + let { uid, state } = req.body; + if (req.method === 'DELETE') { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access + state = categories_1.default.watchStates[meta_1.default.config.categoryWatchState]; + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-argument + } + else if (Object.keys(categories_1.default.watchStates).includes(state)) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access + state = categories_1.default.watchStates[state]; + } + else { + throw new Error('[[error:invalid-data]]'); + } + const { cids: modified } = await api_1.default.categories.setWatchState(req, { cid, state, uid }); + await helpers_1.default.formatApiResponse(200, res, { modified }); +}; +exports.setWatchState = setWatchState; +const getPrivileges = async (req, res) => { + const privilegeSet = await api_1.default.categories.getPrivileges(req, { cid: req.params.cid }); + await helpers_1.default.formatApiResponse(200, res, privilegeSet); +}; +exports.getPrivileges = getPrivileges; +const setPrivilege = async (req, res) => { + const { cid, privilege } = req.params; + await api_1.default.categories.setPrivilege(req, { + cid, + privilege, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access + member: req.body.member, + set: req.method === 'PUT', + }); + const privilegeSet = await api_1.default.categories.getPrivileges(req, { cid: req.params.cid }); + await helpers_1.default.formatApiResponse(200, res, privilegeSet); +}; +exports.setPrivilege = setPrivilege; +const setModerator = async (req, res) => { + await api_1.default.categories.setModerator(req, { + cid: req.params.cid, + member: req.params.uid, + set: req.method === 'PUT', + }); + const privilegeSet = await api_1.default.categories.getPrivileges(req, { cid: req.params.cid }); + await helpers_1.default.formatApiResponse(200, res, privilegeSet); }; -exports.default = Categories; +exports.setModerator = setModerator; diff --git a/src/controllers/write/categories.ts b/src/controllers/write/categories.ts index 71f4b3b926..46567a4fae 100644 --- a/src/controllers/write/categories.ts +++ b/src/controllers/write/categories.ts @@ -21,102 +21,108 @@ interface Response { json: (data: any) => void; } -const Categories = { - list: async (req: Request, res: Response) => { - await helpers.formatApiResponse(200, res, await api.categories.list(req)); - }, - - get: async (req: Request, res: Response) => { - await helpers.formatApiResponse(200, res, await api.categories.get(req, req.params)); - }, - - create: async (req: Request, res: Response) => { - const response = await api.categories.create(req, req.body); - await helpers.formatApiResponse(200, res, response); - }, - - update: async (req: Request, res: Response) => { - await api.categories.update(req, { - cid: req.params.cid, - values: req.body, - }); - - const categoryObjs = await categories.getCategories([req.params.cid]); - await helpers.formatApiResponse(200, res, categoryObjs[0]); - }, - - delete: async (req: Request, res: Response) => { - await api.categories.delete(req, { cid: req.params.cid }); - await helpers.formatApiResponse(200, res); - }, - - getTopicCount: async (req: Request, res: Response) => { - await helpers.formatApiResponse(200, res, await api.categories.getTopicCount(req, { ...req.params })); - }, - - getPosts: async (req: Request, res: Response) => { - const posts = await api.categories.getPosts(req, { ...req.params }); - await helpers.formatApiResponse(200, res, { posts }); - }, - - getChildren: async (req: Request, res: Response) => { - const { cid } = req.params; - const { start } = req.query; - await helpers.formatApiResponse(200, res, await api.categories.getChildren(req, { cid, start })); - }, - - getTopics: async (req: Request, res: Response) => { - const { cid } = req.params; - const result = await api.categories.getTopics(req, { ...req.query, cid }); - - await helpers.formatApiResponse(200, res, result); - }, - - setWatchState: async (req: Request, res: Response) => { - const { cid } = req.params; - let { uid, state } = req.body; - - if (req.method === 'DELETE') { - state = categories.watchStates[meta.config.categoryWatchState]; - } else if (Object.keys(categories.watchStates).includes(state)) { - state = categories.watchStates[state]; - } else { - throw new Error('[[error:invalid-data]]'); - } - - const { cids: modified } = await api.categories.setWatchState(req, { cid, state, uid }); - await helpers.formatApiResponse(200, res, { modified }); - }, - - getPrivileges: async (req: Request, res: Response) => { - const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); - await helpers.formatApiResponse(200, res, privilegeSet); - }, - - setPrivilege: async (req: Request, res: Response) => { - const { cid, privilege } = req.params; - - await api.categories.setPrivilege(req, { - cid, - privilege, - member: req.body.member, - set: req.method === 'PUT', - }); - - const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); - await helpers.formatApiResponse(200, res, privilegeSet); - }, - - setModerator: async (req: Request, res: Response) => { - await api.categories.setModerator(req, { - cid: req.params.cid, - member: req.params.uid, - set: req.method === 'PUT', - }); - - const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); - await helpers.formatApiResponse(200, res, privilegeSet); - }, +interface WatchStateRequest extends Request { + body: { + uid: string; + state: string; + }; +} + +export const list = async (req: Request, res: Response) => { + await helpers.formatApiResponse(200, res, await api.categories.list(req)); +}; + +export const get = async (req: Request, res: Response): Promise => { + await helpers.formatApiResponse(200, res, await api.categories.get(req, req.params)); }; -export default Categories; +export const create = async (req: Request, res: Response): Promise => { + const response: unknown = await api.categories.create(req, req.body); + await helpers.formatApiResponse(200, res, response); +}; + +export const update = async (req: Request, res: Response): Promise => { + await api.categories.update(req, { + cid: req.params.cid, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + values: req.body, + }); + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access + const categoryObjs = await categories.getCategories([req.params.cid]); + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access + await helpers.formatApiResponse(200, res, categoryObjs[0]); +}; + +export const deleteCategories = async (req: Request, res: Response): Promise => { + await api.categories.delete(req, { cid: req.params.cid }); + await helpers.formatApiResponse(200, res); +}; + +export const getTopicCount = async (req: Request, res: Response): Promise => { + await helpers.formatApiResponse(200, res, await api.categories.getTopicCount(req, { ...req.params })); +}; + +export const getPosts = async (req: Request, res: Response): Promise => { + const posts: unknown = await api.categories.getPosts(req, { ...req.params }); + await helpers.formatApiResponse(200, res, { posts }); +}; + +export const getChildren = async (req: Request, res: Response): Promise => { + const { cid } = req.params; + const { start } = req.query; + await helpers.formatApiResponse(200, res, await api.categories.getChildren(req, { cid, start })); +}; + +export const getTopics = async (req: Request, res: Response): Promise => { + const { cid } = req.params; + const result: unknown = await api.categories.getTopics(req, { ...req.query, cid }); + await helpers.formatApiResponse(200, res, result); +}; + +export const setWatchState = async (req: WatchStateRequest, res: Response): Promise => { + const { cid } = req.params; + let { uid, state } = req.body; + + if (req.method === 'DELETE') { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access + state = categories.watchStates[meta.config.categoryWatchState]; + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-argument + } else if (Object.keys(categories.watchStates).includes(state)) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access + state = categories.watchStates[state]; + } else { + throw new Error('[[error:invalid-data]]'); + } + + const { cids: modified } = await api.categories.setWatchState(req, { cid, state, uid }); + await helpers.formatApiResponse(200, res, { modified }); +}; + +export const getPrivileges = async (req: Request, res: Response): Promise => { + const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); + await helpers.formatApiResponse(200, res, privilegeSet); +}; + +export const setPrivilege = async (req: Request, res: Response): Promise => { + const { cid, privilege } = req.params; + await api.categories.setPrivilege(req, { + cid, + privilege, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access + member: req.body.member, + set: req.method === 'PUT', + }); + const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); + await helpers.formatApiResponse(200, res, privilegeSet); +}; + +export const setModerator = async (req: Request, res: Response): Promise => { + await api.categories.setModerator(req, { + cid: req.params.cid, + member: req.params.uid, + set: req.method === 'PUT', + }); + const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); + await helpers.formatApiResponse(200, res, privilegeSet); +}; +export { deleteCategories as delete }; diff --git a/tsconfig.json b/tsconfig.json index 10aeeef7e6..529edaed8d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,17 +1,17 @@ { "compilerOptions": { "allowJs": false, - "target": "es6", + "target": "es2017", "module": "commonjs", "moduleResolution": "node", "esModuleInterop": true, }, "include": [ "public/src/**/*", - "src/**/*", + "src/**/*", "test/**/*", ], - "exclude":[ + "exclude": [ "node_modules", ] } \ No newline at end of file From e3c499b3a1cf5c2adf172f78e2ae5886d6aa7d25 Mon Sep 17 00:00:00 2001 From: Jose Alfonzo Date: Sun, 13 Oct 2024 16:30:08 -0400 Subject: [PATCH 4/4] Actualizar comando npx --- src/controllers/write/categories.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/controllers/write/categories.ts b/src/controllers/write/categories.ts index 46567a4fae..4df5394be0 100644 --- a/src/controllers/write/categories.ts +++ b/src/controllers/write/categories.ts @@ -2,6 +2,7 @@ import categories from '../../categories'; import meta from '../../meta'; import api from '../../api'; import helpers from '../helpers'; +// Interfaces interface Params { cid: string;