Skip to content
Snippets Groups Projects

Resolve "Update highscores"

Merged Tobias Ingebrigt Ørstad requested to merge 6-update-highscores into dev
3 files
+ 362
8
Compare changes
  • Side-by-side
  • Inline
Files
3
+ 41
8
@@ -37,16 +37,15 @@ router.get("/gamescore/:userid/:gameid", (req, res) => {
@@ -37,16 +37,15 @@ router.get("/gamescore/:userid/:gameid", (req, res) => {
);
);
});
});
router.post("/highscore", (req, res) => {
router.post("/highscore", async (req, res) => {
MongoClient.connect(
updateHighscore(req.body.gameid, req.body.userid, req.body.value).then(
connectionUrl,
result => {
{ useNewUrlParser: true, useUnifiedTopology: true },
if (result == 500) {
(err, client) => {
res.sendStatus(500);
// Unable to connect to database
if (err) {
res.sendStatus(500); // Internal server error
return;
return;
}
}
 
res.json(result);
 
return;
const db = client.db("gameWare");
const db = client.db("gameWare");
const collection = "highscores";
const collection = "highscores";
@@ -73,6 +72,40 @@ router.post("/highscore", (req, res) => {
@@ -73,6 +72,40 @@ router.post("/highscore", (req, res) => {
);
);
});
});
 
function updateHighscore(gameid, userid, value) {
 
return new Promise((resolve, reject) => {
 
MongoClient.connect(
 
connectionUrl,
 
{ useNewUrlParser: true, useUnifiedTopology: true },
 
(err, client) => {
 
// Unable to connect to database
 
if (err) {
 
resolve(500); // Internal server error
 
}
 
 
const db = client.db("gameWare");
 
const collection = "highscores";
 
 
db.collection(collection).updateOne(
 
{
 
gameid: mongo.ObjectID(gameid),
 
userid: mongo.ObjectID(userid)
 
},
 
{ $max: { value: value } },
 
{ upsert: true },
 
(err, result) => {
 
if (err) {
 
resolve(500);
 
return;
 
}
 
resolve(result);
 
}
 
);
 
}
 
);
 
});
 
}
 
router.get("/userscore/:userid", (req, res) => {
router.get("/userscore/:userid", (req, res) => {
// Connect to database
// Connect to database
MongoClient.connect(
MongoClient.connect(
Loading