diff --git a/backend/routes/room.js b/backend/routes/room.js
index cfaf1ac..4ee87a4 100644
--- a/backend/routes/room.js
+++ b/backend/routes/room.js
@@ -3,6 +3,8 @@ var router = express.Router();
var RoomModel = require('../schemas/room');
+var colors = ['red','blue','green','yellow'];
+
//creating new room in db
router.post('/add', function (req, res) {
console.log(req.session);
@@ -15,45 +17,48 @@ router.post('/add', function (req, res) {
createDate: new Date,
full: false,
started: false,
- players: [req.body.name],
+ players: [{
+ player: req.body.name,
+ color: colors[0]
+ }],
});
newRoom.save()
- .then( async function(){
+ .then(function(){
req.session.roomId = newRoom._id;
req.session.player = req.body.name;
- res.send({id: newRoom._id});
+ res.status(200).send('Joined!');
})
.catch(err => res.status(400).json('Error: ' + err))
}else {
let players = results.players;
- players.push(req.body.name);
+ players.push(
+ {
+ player: req.body.name,
+ color: colors[players.length]
+ }
+
+ );
let updateObj = {
players: players,
}
players.length === 4 ? updateObj.full = true : updateObj.full = false;
RoomModel.findOneAndUpdate(
- { _id: results._id },
- updateObj,
+ { _id: results._id }, //find room by id
+ updateObj,
function (err, docs) {
if (err){
console.log(err)
}
else{
- req.session.roomId = results._id;
- req.session.player = req.body.name;
console.log("Updated Docs : ", docs);
}
}
).then(()=>{
req.session.roomId = results._id;
req.session.player = req.body.name;
- console.log(req.session);
- res.send({
- id: results._id,
- player: req.session.player
- });
+ res.status(200).send('Joined!');
});
}
@@ -74,7 +79,18 @@ router.put('/edit', function(req,res){
//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{
+ console.log(docs)
+ res.send({ players: docs.players});
+ }
+ }
+ )
});
module.exports = router;
\ No newline at end of file
diff --git a/backend/schemas/room.js b/backend/schemas/room.js
index c1225d4..b6f4526 100644
--- a/backend/schemas/room.js
+++ b/backend/schemas/room.js
@@ -6,7 +6,10 @@ var RoomSchema = new Schema({
createDate: Date,
started: Boolean,
full: Boolean,
- players: Array,
+ players: [{
+ player: String,
+ color: String,
+ }],
positions: Map
});
diff --git a/backend/server.js b/backend/server.js
index f266ebe..5d9c82a 100644
--- a/backend/server.js
+++ b/backend/server.js
@@ -55,7 +55,7 @@ const playerRoutes = require("./routes/player");
app.get('/', (req,res)=>{
if(req.session.player){
- res.json({
+ res.send({
player: req.session.player,
roomId: req.session.roomId,
})
diff --git a/src/App.js b/src/App.js
index 7b9239d..804c8ad 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,6 +1,8 @@
import React, { useEffect, useState } from 'react';
import axios from 'axios';
-import { BrowserRouter as Router , Redirect } from 'react-router-dom';
+import { BrowserRouter as Router , Route , Redirect, Switch } from 'react-router-dom';
+
+import Navbar from './components/Navbar'
import NameInput from './components/NameInput';
function App() {
@@ -9,7 +11,7 @@ function App() {
withCredentials:true,
mode: 'cors'
})
- .then((response)=> response.id!=null ? setRedirect(true): null);
+ .then((response)=> response.id!=null ? setRedirect(true) : null);
})
const [id, setId] = useState('')
const [redirect, setRedirect] = useState(false)
@@ -26,6 +28,11 @@ function App() {
return (
{name.player}
+ )}