From 2e3e92a8da20d875bbb631542908115301952abb Mon Sep 17 00:00:00 2001 From: C4 Patino Date: Thu, 18 Aug 2022 18:28:04 -0400 Subject: [PATCH] Fixed badgeCount --- server/routes/user/Login.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/server/routes/user/Login.js b/server/routes/user/Login.js index 3c2d933..8b40d9f 100644 --- a/server/routes/user/Login.js +++ b/server/routes/user/Login.js @@ -2,6 +2,7 @@ const mongoose = require('mongoose'); const jwt = require('jsonwebtoken'); const Token = require('server/db/models/Token'); +const Badge = require('server/db/models/Badge'); const getUserLevel = require('server/utils/getUserLevel'); async function Login(req, res) { @@ -20,6 +21,27 @@ async function Login(req, res) { user: user.username, }); + const badges = await Badge.find({ title: { $in: user.badges } }); + + const badgeCount = badges.reduce( + (acc, badge) => { + if (badge.rank === 'Gold') { + acc.gold = acc.gold + 1; + } else if (badge.rank === 'Silver') { + acc.silver = acc.silver + 1; + } else if (badge.rank === 'Bronze') { + acc.bronze = acc.bronze + 1; + } + + return acc; + }, + { + gold: 0, + silver: 0, + bronze: 0, + } + ); + return res.send({ token: token.token, user: { @@ -27,7 +49,8 @@ async function Login(req, res) { email: user.email, points: user.points, level: getUserLevel(user.points), - } + badgeCount, + }, }); }