From fa634e04261d1c4e6c8f242d3e8020a8a81000c9 Mon Sep 17 00:00:00 2001 From: Miodec Date: Fri, 11 Mar 2022 15:20:43 +0100 Subject: [PATCH] stopping rank command from running if leaderboard is updating --- backend/api/controllers/leaderboards.ts | 7 +++++++ backend/dao/leaderboards.js | 1 + 2 files changed, 8 insertions(+) diff --git a/backend/api/controllers/leaderboards.ts b/backend/api/controllers/leaderboards.ts index c8bc20370..f9b325d61 100644 --- a/backend/api/controllers/leaderboards.ts +++ b/backend/api/controllers/leaderboards.ts @@ -39,6 +39,13 @@ class LeaderboardsController { const { uid } = req.ctx.decodedToken; const data = await LeaderboardsDAO.getRank(mode, mode2, language, uid); + if (data === false) { + return new MonkeyResponse( + "Leaderboard is currently updating. Please try again in a few seconds.", + null, + 503 + ); + } return new MonkeyResponse("Rank retrieved", data); } diff --git a/backend/dao/leaderboards.js b/backend/dao/leaderboards.js index e8d00b6a5..20db6a88b 100644 --- a/backend/dao/leaderboards.js +++ b/backend/dao/leaderboards.js @@ -20,6 +20,7 @@ class LeaderboardsDAO { } static async getRank(mode, mode2, language, uid) { + if (leaderboardUpdating[`${language}_${mode}_${mode2}`]) return false; const res = await db .collection(`leaderboards.${language}.${mode}.${mode2}`) .findOne({ uid });