added function to update leaderboard

This commit is contained in:
Jack 2021-09-07 15:06:34 +01:00
parent dfe4590813
commit 1b3c6d9b38
2 changed files with 44 additions and 1 deletions

View file

@ -1,4 +1,5 @@
const LeaderboardsDAO = require("../../dao/leaderboards");
const ResultDAO = require("../../dao/result");
class LeaderboardsController {
static async get(req, res, next) {
@ -42,6 +43,41 @@ class LeaderboardsController {
}
static async update(req, res, next) {
try {
const { rid } = req.body;
const { uid } = req.decodedToken;
if (!rid) {
return res.status(400).json({
message: "Missing parameters",
});
}
let result = await ResultDAO.getResult(uid, rid);
if (!result.language) result.language = "english";
if (
result.mode == "time" &&
result.isPb &&
(result.mode2 == 15 || result.mode2 == 60) &&
["english"].includes(result.language)
) {
//run update
let retval = await LeaderboardsDAO.update(
result.mode,
result.mode2,
result.language,
uid
);
return res.status(200).json(retval);
} else {
return res.status(400).json({
message: "This result is not eligible for any leaderboard",
});
}
} catch (e) {
return next(e);
}
}
static async debugUpdate(req, res, next) {
try {
const { language, mode, mode2 } = req.body;
if (!language || !mode || !mode2) {

View file

@ -15,11 +15,18 @@ router.get(
LeaderboardsController.getRank
);
router.post(
"/update",
RateLimit.limit60perhour,
authenticateRequest,
LeaderboardsController.update
);
//TODO remove me
router.post(
"/debug_update",
RateLimit.limit1persec,
LeaderboardsController.update
LeaderboardsController.debugUpdate
);
module.exports = router;