diff --git a/src/controllers/write/categories.js b/src/controllers/write/categories.js index 32510c50ad..bb4ec84090 100644 --- a/src/controllers/write/categories.js +++ b/src/controllers/write/categories.js @@ -1,109 +1,107 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; +'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)); }; -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 list = async (req, res) => { - await helpers_1.default.formatApiResponse(200, res, await api_1.default.categories.list(req)); + +Categories.get = async (req, res) => { + helpers.formatApiResponse(200, res, await api.categories.get(req, req.params)); }; -exports.list = list; -const get = async (req, res) => { - await helpers_1.default.formatApiResponse(200, res, await api_1.default.categories.get(req, req.params)); + +Categories.create = async (req, res) => { + const response = await api.categories.create(req, req.body); + helpers.formatApiResponse(200, res, response); }; -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); + +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]); }; -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]); + +Categories.delete = async (req, res) => { + await api.categories.delete(req, { cid: req.params.cid }); + helpers.formatApiResponse(200, res); }; -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); + +Categories.getTopicCount = async (req, res) => { + helpers.formatApiResponse(200, res, await api.categories.getTopicCount(req, { ...req.params })); }; -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))); + +Categories.getPosts = async (req, res) => { + const posts = await api.categories.getPosts(req, { ...req.params }); + helpers.formatApiResponse(200, res, { posts }); }; -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 }); + +Categories.getChildren = async (req, res) => { + const { cid } = req.params; + const { start } = req.query; + helpers.formatApiResponse(200, res, await api.categories.getChildren(req, { cid, start })); }; -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 })); + +Categories.getTopics = async (req, res) => { + const { cid } = req.params; + const result = await api.categories.getTopics(req, { ...req.query, cid }); + + helpers.formatApiResponse(200, res, result); }; -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); + +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 }); }; -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 }); + +Categories.getPrivileges = async (req, res) => { + const privilegeSet = await api.categories.getPrivileges(req, { cid: req.params.cid }); + helpers.formatApiResponse(200, res, privilegeSet); }; -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); + +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); }; -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); + +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); }; -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.setModerator = setModerator; diff --git a/src/controllers/write/categories.ts b/src/controllers/write/categories.ts deleted file mode 100644 index 46567a4fae..0000000000 --- a/src/controllers/write/categories.ts +++ /dev/null @@ -1,128 +0,0 @@ -import categories from '../../categories'; -import meta from '../../meta'; -import api from '../../api'; -import helpers from '../helpers'; - -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; -} - -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 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/src/dummy.js b/src/dummy.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tsconfig.json b/tsconfig.json index 529edaed8d..10aeeef7e6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,17 +1,17 @@ { "compilerOptions": { "allowJs": false, - "target": "es2017", + "target": "es6", "module": "commonjs", "moduleResolution": "node", "esModuleInterop": true, }, "include": [ "public/src/**/*", - "src/**/*", + "src/**/*", "test/**/*", ], - "exclude": [ + "exclude":[ "node_modules", ] } \ No newline at end of file