From 1c710d609e3c0834021305dace8ab39f069f3451 Mon Sep 17 00:00:00 2001 From: Jack Date: Tue, 7 Sep 2021 17:44:54 +0100 Subject: [PATCH] removed old lb code --- backend/dao/result.js | 110 ------------------------------------------ 1 file changed, 110 deletions(-) diff --git a/backend/dao/result.js b/backend/dao/result.js index 9754d78a0..6e94fb320 100644 --- a/backend/dao/result.js +++ b/backend/dao/result.js @@ -66,116 +66,6 @@ class ResultDAO { if (!result) throw new MonkeyError(404, "Result not found"); return result; } - - static async getLeaderboard(type, mode, mode2) { - let count; - let startDate = new Date(); - let start = 0; - if (type == "global") count = 999; - else if (type == "daily") { - count = 100; - startDate.setUTCHours(0, 0, 0, 0); // next midnight UTC - start = startDate.getTime(); - } - const leaders = await mongoDB() - .collection("results") - .aggregate([ - { - $match: { - mode: mode, - mode2: parseInt(mode2), - timestamp: { $gt: start }, - }, - }, - { $sort: { wpm: -1 } }, - { - $group: { - _id: "$name", - doc: { $first: "$$ROOT" }, - }, - }, - { - $replaceRoot: { - newRoot: "$doc", - }, - }, - { $limit: count }, - ]) - .toArray(); - let board = []; - leaders.forEach((entry) => { - board.push({ - name: entry.name, - wpm: entry.wpm, - acc: entry.acc, - raw: entry.rawWpm, - consistency: entry.consistency, - mode: entry.mode, - mode2: entry.mode2, - timestamp: entry.timestamp, - }); - }); - board.sort((a, b) => { - return b.wpm - a.wpm; - }); - let leaderboard = { - type: type, - size: board.length, - board: board, - }; - if (type == "daily") { - var d = new Date(); - d.setUTCHours(24, 0, 0, 0); // next midnight UTC - leaderboard.resetTime = d; - } - return leaderboard; - } - - static async checkLeaderboardQualification(uid, result) { - function processLb(user, lb, result) { - let board = lb.board; - let data = {}; - data.foundAt = board.indexOf( - board.find((entry) => entry.name === user.name) - ); - let maxSize = 100; - if (lb.type === "global") maxSize = 999; - if ( - result.wpm < board[board.length - 1].wpm && - board.length === maxSize - ) { - data.insertedAt = -1; - } else { - for (let i = board.length - 1; i > 0; i--) { - if (result.wpm < board[i].wpm) { - data.insertedAt = i + 1; - break; - } - } - if (data.insertedAt === undefined) data.insertedAt = 0; - } - return data; - } - - const user = await mongoDB().collection("users").findOne({ uid: uid }); - //might need to check if email is verified with firebase - if (user.emailVerified === false) return { needsToVerifyEmail: true }; - if (user.name === undefined) return { noName: true }; - if (user.banned) return { banned: true }; - const globalLb = await this.getLeaderboard( - "global", - result.mode, - result.mode2 - ); - const dailyLb = await this.getLeaderboard( - "daily", - result.mode, - result.mode2 - ); - const globalData = processLb(user, globalLb, result); - const dailyData = processLb(user, dailyLb, result); - return { global: globalData, daily: dailyData }; - } } module.exports = ResultDAO;