From e6f701c3cb0a9a6a380c9ed9b56d8bec63ad8353 Mon Sep 17 00:00:00 2001 From: Jack Date: Tue, 7 Sep 2021 16:36:06 +0100 Subject: [PATCH] added update lb memory function to user api --- backend/api/controllers/user.js | 11 +++++++++++ backend/api/routes/user.js | 7 +++++++ backend/dao/user.js | 18 ++++++++++++++++++ 3 files changed, 36 insertions(+) diff --git a/backend/api/controllers/user.js b/backend/api/controllers/user.js index 17b64dec4..44bc16a0f 100644 --- a/backend/api/controllers/user.js +++ b/backend/api/controllers/user.js @@ -232,6 +232,17 @@ class UserController { return next(e); } } + + static async updateLbMemory(req, res, next) { + try { + const { uid } = req.decodedToken; + const { mode, mode2, language, rank } = req.body; + await UsersDAO.updateLbMemory(uid, mode, mode2, language, rank); + return res.sendStatus(200); + } catch (e) { + return next(e); + } + } } module.exports = UserController; diff --git a/backend/api/routes/user.js b/backend/api/routes/user.js index e310078be..1f3b0c1a9 100644 --- a/backend/api/routes/user.js +++ b/backend/api/routes/user.js @@ -35,6 +35,13 @@ router.post( UserController.updateName ); +router.post( + "/updateLbMemory", + RateLimit.limit1persec, + authenticateRequest, + UserController.updateLbMemory +); + router.post( "/updateEmail", RateLimit.limit60perhour, diff --git a/backend/dao/user.js b/backend/dao/user.js index 401dd0ec8..3a08eaa55 100644 --- a/backend/dao/user.js +++ b/backend/dao/user.js @@ -149,6 +149,24 @@ class UsersDAO { ); } + static async updateLbMemory(uid, mode, mode2, language, rank) { + const user = await mongoDB().collection("users").findOne({ uid }); + if (!user) throw new MonkeyError(404, "User not found", "get user"); + if (user.lbMemory === undefined) user.lbMemory = {}; + if (user.lbMemory[mode] === undefined) user.lbMemory[mode] = {}; + if (user.lbMemory[mode][mode2] === undefined) + user.lbMemory[mode][mode2] = {}; + user.lbMemory[mode][mode2][language] = rank; + return await mongoDB() + .collection("users") + .updateOne( + { uid }, + { + $set: { lbMemory: user.lbMemory }, + } + ); + } + static async checkIfPb(uid, result) { const user = await mongoDB().collection("users").findOne({ uid }); if (!user) throw new MonkeyError(404, "User not found", "check if pb");