diff --git a/backend/api/rounds.js b/backend/api/rounds.js index 53423a2a9b2eb7c70aa5d0504eee06c69a7b3fe2..f4390c21d758e1c81ddb05ea93c0b45627e7e44e 100644 --- a/backend/api/rounds.js +++ b/backend/api/rounds.js @@ -449,7 +449,7 @@ function roundcheck(client, tournament, roundid) { // fetched the round objects of the active round let activePlayer; for (let i = 0; i < rounds.length; i++) { - if (rounds[i]._id.str == roundid.str) { + if (String(rounds[i]._id) == String(roundid)) { activePlayer = rounds[i].playerId; break; } diff --git a/backend/api/tournament.js b/backend/api/tournament.js index 4a34e4992dcf828c188225c14820c847d7138d73..38fada7da1c420352222fd75209b52427160ea19 100644 --- a/backend/api/tournament.js +++ b/backend/api/tournament.js @@ -309,6 +309,46 @@ router.get("/playeractive/:userid", (req, res) => { ); }); +router.get("/specific/:id", (req, res) => { + MongoClient.connect( + connectionUrl, + { useNewUrlParser: true, useUnifiedTopology: true }, + (err, client) => { + // Unable to connect to database + if (err) { + res.sendStatus(500); // Internal server error + return; + } + let id; + if (!req.params.id) { + res.sendStatus(400); + } + try { + id = mongo.ObjectID(req.params.id); + } catch (err) { + res.sendStatus(400); + } + // Using the database gameWare and collection tournaments + const db = client.db("gameWare"); + const collection = "tournaments"; + + db.collection(collection) + .find({ + _id: id, + }) + .toArray((err, result) => { + if (err) { + res.sendStatus(500); + client.close(); + return; + } + res.json(result[0]); + client.close(); + }); + } + ); +}); + router.get("/player/:userid/:active", (req, res) => { // Returns the tournaments of player with active field matching parameter // Also checks the state of all tournaments