Implemented custom per-channel !toke commands in back-end.

This commit is contained in:
rainbow napkin 2024-12-15 09:51:32 -05:00
parent 575244ac53
commit a1fbbea7b7
10 changed files with 159 additions and 29 deletions

View file

@ -24,6 +24,7 @@ const channelModel = require("../../schemas/channel/channelSchema");
const channelValidator = require("../../validators/channelValidator");
const accountValidator = require("../../validators/accountValidator");
const {channelPermissionValidator} = require("../../validators/permissionsValidator");
const tokebotValidator = require("../../validators/tokebotValidator");
const registerController = require("../../controllers/api/channel/registerController");
const listController = require("../../controllers/api/channel/listController");
const settingsController = require("../../controllers/api/channel/settingsController");
@ -31,6 +32,7 @@ const permissionsController = require("../../controllers/api/channel/permissions
const rankController = require("../../controllers/api/channel/rankController");
const deleteController = require("../../controllers/api/channel/deleteController");
const banController = require("../../controllers/api/channel/banController");
const tokeCommandController = require("../../controllers/api/channel/tokeCommandController");
//globals
const router = Router();
@ -42,6 +44,7 @@ router.use("/permissions", channelValidator.name('chanName'));
router.use("/rank", channelValidator.name('chanName'));
router.use("/delete", channelValidator.name('chanName'));
router.use("/ban", channelValidator.name('chanName'));
router.use("/tokeCommand", channelValidator.name('chanName'));
//routing functions
//register
@ -63,5 +66,9 @@ router.post('/delete', channelModel.reqPermCheck("deleteChannel"), channelValid
router.get('/ban', channelModel.reqPermCheck("manageChannel"), banController.get);
router.post('/ban', channelModel.reqPermCheck("banUser"), accountValidator.user(), body("banAlts").isBoolean(), body("expirationDays").isInt(), banController.post);
router.delete('/ban', channelModel.reqPermCheck("banUser"), accountValidator.user(), banController.delete);
//tokeCommand
router.get('/tokeCommand', channelModel.reqPermCheck("manageChannel"), tokeCommandController.get);
router.post('/tokeCommand', tokebotValidator.command(), channelModel.reqPermCheck("editTokeCommands"), tokeCommandController.post);
router.delete('/tokeCommand', tokebotValidator.command(), channelModel.reqPermCheck("editTokeCommands"), tokeCommandController.delete);
module.exports = router;