Added badgecount

This commit is contained in:
Ceferino Patino 2022-08-18 14:49:49 -04:00
commit 30a35fce7f
3 changed files with 26 additions and 3 deletions

View file

@ -9,6 +9,6 @@ const ReadMail = require('./mail/Read');
router.get('/', tokenAuth, GetMail);
router.post('/', tokenAuth, SendMail);
router.patch('/', tokenAuth, ReadMail);
router.patch('/:mail_id', tokenAuth, ReadMail);
module.exports = router;

View file

@ -2,9 +2,9 @@ const Mail = require('server/db/models/Mail');
const config = require('server/config.json');
async function Read(req, res) {
const { id } = req.body;
const { mail_id } = req.params;
const cachedMail = await Mail.findByIdAndUpdate(id, { read: true });
const cachedMail = await Mail.findByIdAndUpdate(mail_id, { read: true });
return cachedMail ? res.sendStatus(200) : res.status(404).send(config.errorNotFound);
}

View file

@ -2,6 +2,7 @@ const createRequest = require('server/utils/api');
const config = require('server/config.json');
const User = require('server/db/models/User');
const getUserLevel = require('server/utils/getUserLevel');
const Badge = require('server/db/models/');
async function GetUser(req, res) {
const { username } = req.params;
@ -27,6 +28,27 @@ async function GetUser(req, res) {
new: true,
});
const badges = await Badge.find({ title: { $in: user.badges } });
const badgeCount = badges.reduce(
(acc, badge) => {
if (badge.rank === 'Gold') {
acc.gold = acc.gold++;
} else if (badge.rank === 'Silver') {
acc.silver = acc.silver++;
} else if (badge.rank === 'Bronze') {
acc.bronze = acc.bronze++;
}
return acc;
},
{
gold: 0,
silver: 0,
bronze: 0,
}
);
return res.send({
user: {
username: newUser.username,
@ -34,6 +56,7 @@ async function GetUser(req, res) {
points: newUser.points,
level: getUserLevel(newUser.points),
},
badgeCount,
});
}