Skip to content
Snippets Groups Projects

Resolve "Include name in get highscore"

Merged Ivar Nordvik Myrstad requested to merge 54-include-name-in-get-highscore into dev
2 files
+ 52
5
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 44
4
@@ -45,8 +45,10 @@ router.get("/gamescore/:playerId/:gameId", (req, res) => {
@@ -45,8 +45,10 @@ router.get("/gamescore/:playerId/:gameId", (req, res) => {
//console.log(err);
//console.log(err);
return;
return;
}
}
res.json(result);
addNameToResult(result, db).then(objects => {
client.close();
res.json(objects);
 
client.close();
 
});
});
});
}
}
);
);
@@ -193,6 +195,7 @@ router.get("/gamescores/:gameId", (req, res) => {
@@ -193,6 +195,7 @@ router.get("/gamescores/:gameId", (req, res) => {
if (gameId == null) {
if (gameId == null) {
res.status(400).send("Fields missing");
res.status(400).send("Fields missing");
 
return;
}
}
db.collection(collection)
db.collection(collection)
@@ -208,12 +211,49 @@ router.get("/gamescores/:gameId", (req, res) => {
@@ -208,12 +211,49 @@ router.get("/gamescores/:gameId", (req, res) => {
//console.log(err);
//console.log(err);
return;
return;
}
}
res.json(result);
addNameToResult(result, db).then(objects => {
client.close();
res.json(objects);
 
client.close();
 
});
});
});
}
}
);
);
});
});
 
function addNameToResult(result, db) {
 
return new Promise((resolve, reject) => {
 
const playerIds = result.map(o => o.playerId);
 
db.collection("players")
 
.find({
 
_id: { $in: playerIds }
 
})
 
.project({ name: 1 })
 
.toArray((err, nameresult) => {
 
if (err) {
 
res.sendStatus(500);
 
//console.log(err);
 
return;
 
}
 
nameresult = nameresult.map(doc => {
 
// rename _id => playerId
 
doc.playerId = doc._id;
 
delete doc._id;
 
return doc;
 
});
 
let objects = [];
 
for (let i = 0; i < result.length; i++) {
 
objects.push({
 
...result[i],
 
...nameresult.find(
 
itmInner =>
 
String(itmInner.playerId) === String(result[i].playerId)
 
)
 
});
 
}
 
resolve(objects);
 
});
 
});
 
}
 
// Export API routes
// Export API routes
module.exports = router;
module.exports = router;
Loading