From b39d250bcb3e89093d87e896a4067d71606dc5a1 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Fri, 24 Feb 2023 14:43:44 +0000 Subject: [PATCH] added `ModerationController` --- .../endpoints/modifyPostLikes.js | 47 +++++++++++++++++++ .../controllers/ModerationController/index.js | 10 ++++ 2 files changed, 57 insertions(+) create mode 100644 packages/server/src/controllers/ModerationController/endpoints/modifyPostLikes.js create mode 100644 packages/server/src/controllers/ModerationController/index.js diff --git a/packages/server/src/controllers/ModerationController/endpoints/modifyPostLikes.js b/packages/server/src/controllers/ModerationController/endpoints/modifyPostLikes.js new file mode 100644 index 00000000..e4c99165 --- /dev/null +++ b/packages/server/src/controllers/ModerationController/endpoints/modifyPostLikes.js @@ -0,0 +1,47 @@ +import { Post, } from "@models" +import toogleLike from "../../PostsController/services/toogleLike" + +export default { + method: "POST", + route: "/:post_id/mok_likes", + middlewares: ["withAuthentication", "onlyAdmin"], + fn: async (req, res) => { + const { + count, + interval = 100, + } = req.body + + if (count < 1) { + return res.status(400).json({ + error: "Invalid count, must be greater than 0", + }) + } + + let postData = await Post.findById(req.params.post_id) + + if (!postData) { + return res.status(404).json({ + error: "Post not found", + }) + } + + for (let i = 0; i < count; i++) { + const mokUserId = `mok_${i}_${count}` + + toogleLike({ + post_id: postData._id.toString(), + user_id: mokUserId, + to: true + }) + + await new Promise((resolve) => setTimeout(resolve, interval ?? 100)) + + continue + } + + return res.status(200).json({ + message: "Success", + data: postData + }) + } +} \ No newline at end of file diff --git a/packages/server/src/controllers/ModerationController/index.js b/packages/server/src/controllers/ModerationController/index.js new file mode 100644 index 00000000..1b987346 --- /dev/null +++ b/packages/server/src/controllers/ModerationController/index.js @@ -0,0 +1,10 @@ +import { Controller } from "linebridge/dist/server" +import generateEndpointsFromDir from "linebridge/dist/server/lib/generateEndpointsFromDir" + +export default class ModerationController extends Controller { + static refName = "ModerationController" + static useRoute = "/mod" + static reachable = false + + httpEndpoints = generateEndpointsFromDir(__dirname + "/endpoints") +} \ No newline at end of file