diff --git a/backend/api/controllers/leaderboards.js b/backend/api/controllers/leaderboards.js deleted file mode 100644 index 6a211ee73..000000000 --- a/backend/api/controllers/leaderboards.js +++ /dev/null @@ -1,38 +0,0 @@ -const LeaderboardsDAO = require("../../dao/leaderboards"); - -class LeaderboardsController { - static async get(req, res, next) { - try { - const { language, mode, mode2 } = req.query; - if (!language || !mode || !mode2) { - return res.status(400).json({ - message: "Missing parameters", - }); - } - let retval = await LeaderboardsDAO.get(mode, mode2, language); - retval.forEach((item) => { - delete item.uid; - }); - return res.status(200).json(retval); - } catch (e) { - return next(e); - } - } - - static async update(req, res, next) { - try { - const { language, mode, mode2 } = req.body; - if (!language || !mode || !mode2) { - return res.status(400).json({ - message: "Missing parameters", - }); - } - let retval = await LeaderboardsDAO.update(mode, mode2, language); - return res.status(200).json(retval); - } catch (e) { - return next(e); - } - } -} - -module.exports = LeaderboardsController; diff --git a/backend/api/routes/leaderboards.js b/backend/api/routes/leaderboards.js deleted file mode 100644 index ea2a9df6b..000000000 --- a/backend/api/routes/leaderboards.js +++ /dev/null @@ -1,22 +0,0 @@ -const { authenticateRequest } = require("../../middlewares/auth"); -const LeaderboardsController = require("../controllers/leaderboards"); -const RateLimit = require("../../middlewares/rate-limit"); - -const { Router } = require("express"); - -const router = Router(); - -router.get( - "/", - RateLimit.limit1persec, - authenticateRequest, - LeaderboardsController.get -); - -router.post( - "/debug_update", - RateLimit.limit1persec, - LeaderboardsController.update -); - -module.exports = router; diff --git a/backend/dao/leaderboards.js b/backend/dao/leaderboards.js deleted file mode 100644 index 17cde5852..000000000 --- a/backend/dao/leaderboards.js +++ /dev/null @@ -1,84 +0,0 @@ -const MonkeyError = require("../handlers/error"); -const { mongoDB } = require("../init/mongodb"); -const { ObjectID } = require("mongodb"); - -class LeaderboardsDAO { - static async get(mode, mode2, language) { - const preset = await mongoDB() - .collection(`leaderboards.${language}.${mode}.${mode2}`) - .find() - .toArray(); - return preset; - } - - static async getRank(mode, mode2, language, uid) { - const res = await mongoDB() - .collection(`leaderboards.${language}.${mode}.${mode2}`) - .findOne({ uid }); - return res.rank; - } - - static async update(mode, mode2, language, uid = undefined) { - let str = `lbPersonalBests.${mode}.${mode2}.${language}`; - let lb = await mongoDB() - .collection("users") - .aggregate([ - { - $match: { - [str]: { - $exists: true, - }, - }, - }, - { - $set: { - [str + ".uid"]: "$uid", - [str + ".name"]: "$name", - }, - }, - { - $replaceRoot: { - newRoot: "$" + str, - }, - }, - { - $sort: { - wpm: -1, - acc: -1, - timestamp: -1, - }, - }, - ]) - .toArray(); - - let rerval = undefined; - lb.forEach((lbEntry, index) => { - lbEntry.rank = index + 1; - if (uid && lbEntry.uid === uid) { - rerval = index + 1; - } - }); - - try { - await mongoDB() - .collection(`leaderboards.${language}.${mode}.${mode2}`) - .drop(); - } catch (e) {} - await mongoDB() - .collection(`leaderboards.${language}.${mode}.${mode2}`) - .insertMany(lb); - - if (rerval) { - return { - message: "Successfully updated leaderboard", - rank: retval, - }; - } else { - return { - message: "Successfully updated leaderboard", - }; - } - } -} - -module.exports = LeaderboardsDAO;