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 });