ludo-web-multiplayer/backend/routes/room.js
2022-05-29 18:17:28 +02:00

48 lines
1.9 KiB
JavaScript

const express = require("express");
const router = express.Router();
const RoomModel = require("../schemas/room");
//get room values
router.get("/", function (req, res) {
RoomModel.findOne(
{ _id: req.session.roomId }, //find room by id
function (err, docs) {
if (err) {
console.log(err);
} else {
if (docs) {
if (docs.nextMoveTime <= Date.now()) {
RoomModel.findOne({ _id: req.session.roomId }, function (err, doc) {
if (err) {
res.status(500).send(err);
} else {
const index = doc.players.findIndex(player => player.nowMoving === true);
const roomSize = doc.players.length;
doc.players[index].nowMoving = false;
if (index + 1 === roomSize) {
doc.players[0].nowMoving = true;
} else {
doc.players[index + 1].nowMoving = true;
}
doc.nextMoveTime = Date.now() + 15000;
RoomModel.findOneAndUpdate({ _id: req.session.roomId }, doc, function (err, docs) {
if (err) {
res.status(500).send(err);
} else {
res.send(docs);
}
});
}
});
} else {
res.send(docs);
}
}
}
}
);
});
module.exports = router;