added displaying players
This commit is contained in:
parent
5e6a4cc32e
commit
78eb161408
@ -3,6 +3,8 @@ var router = express.Router();
|
|||||||
|
|
||||||
var RoomModel = require('../schemas/room');
|
var RoomModel = require('../schemas/room');
|
||||||
|
|
||||||
|
var colors = ['red','blue','green','yellow'];
|
||||||
|
|
||||||
//creating new room in db
|
//creating new room in db
|
||||||
router.post('/add', function (req, res) {
|
router.post('/add', function (req, res) {
|
||||||
console.log(req.session);
|
console.log(req.session);
|
||||||
@ -15,45 +17,48 @@ router.post('/add', function (req, res) {
|
|||||||
createDate: new Date,
|
createDate: new Date,
|
||||||
full: false,
|
full: false,
|
||||||
started: false,
|
started: false,
|
||||||
players: [req.body.name],
|
players: [{
|
||||||
|
player: req.body.name,
|
||||||
|
color: colors[0]
|
||||||
|
}],
|
||||||
});
|
});
|
||||||
newRoom.save()
|
newRoom.save()
|
||||||
.then( async function(){
|
.then(function(){
|
||||||
req.session.roomId = newRoom._id;
|
req.session.roomId = newRoom._id;
|
||||||
req.session.player = req.body.name;
|
req.session.player = req.body.name;
|
||||||
|
|
||||||
res.send({id: newRoom._id});
|
res.status(200).send('Joined!');
|
||||||
})
|
})
|
||||||
.catch(err => res.status(400).json('Error: ' + err))
|
.catch(err => res.status(400).json('Error: ' + err))
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
let players = results.players;
|
let players = results.players;
|
||||||
players.push(req.body.name);
|
players.push(
|
||||||
|
{
|
||||||
|
player: req.body.name,
|
||||||
|
color: colors[players.length]
|
||||||
|
}
|
||||||
|
|
||||||
|
);
|
||||||
let updateObj = {
|
let updateObj = {
|
||||||
players: players,
|
players: players,
|
||||||
}
|
}
|
||||||
players.length === 4 ? updateObj.full = true : updateObj.full = false;
|
players.length === 4 ? updateObj.full = true : updateObj.full = false;
|
||||||
RoomModel.findOneAndUpdate(
|
RoomModel.findOneAndUpdate(
|
||||||
{ _id: results._id },
|
{ _id: results._id }, //find room by id
|
||||||
updateObj,
|
updateObj,
|
||||||
function (err, docs) {
|
function (err, docs) {
|
||||||
if (err){
|
if (err){
|
||||||
console.log(err)
|
console.log(err)
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
req.session.roomId = results._id;
|
|
||||||
req.session.player = req.body.name;
|
|
||||||
console.log("Updated Docs : ", docs);
|
console.log("Updated Docs : ", docs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
).then(()=>{
|
).then(()=>{
|
||||||
req.session.roomId = results._id;
|
req.session.roomId = results._id;
|
||||||
req.session.player = req.body.name;
|
req.session.player = req.body.name;
|
||||||
console.log(req.session);
|
res.status(200).send('Joined!');
|
||||||
res.send({
|
|
||||||
id: results._id,
|
|
||||||
player: req.session.player
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -74,7 +79,18 @@ router.put('/edit', function(req,res){
|
|||||||
|
|
||||||
//get room values
|
//get room values
|
||||||
router.get('/', function(req,res){
|
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;
|
module.exports = router;
|
||||||
@ -6,7 +6,10 @@ var RoomSchema = new Schema({
|
|||||||
createDate: Date,
|
createDate: Date,
|
||||||
started: Boolean,
|
started: Boolean,
|
||||||
full: Boolean,
|
full: Boolean,
|
||||||
players: Array,
|
players: [{
|
||||||
|
player: String,
|
||||||
|
color: String,
|
||||||
|
}],
|
||||||
positions: Map
|
positions: Map
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -55,7 +55,7 @@ const playerRoutes = require("./routes/player");
|
|||||||
|
|
||||||
app.get('/', (req,res)=>{
|
app.get('/', (req,res)=>{
|
||||||
if(req.session.player){
|
if(req.session.player){
|
||||||
res.json({
|
res.send({
|
||||||
player: req.session.player,
|
player: req.session.player,
|
||||||
roomId: req.session.roomId,
|
roomId: req.session.roomId,
|
||||||
})
|
})
|
||||||
|
|||||||
11
src/App.js
11
src/App.js
@ -1,6 +1,8 @@
|
|||||||
import React, { useEffect, useState } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
import axios from 'axios';
|
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';
|
import NameInput from './components/NameInput';
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
@ -9,7 +11,7 @@ function App() {
|
|||||||
withCredentials:true,
|
withCredentials:true,
|
||||||
mode: 'cors'
|
mode: 'cors'
|
||||||
})
|
})
|
||||||
.then((response)=> response.id!=null ? setRedirect(true): null);
|
.then((response)=> response.id!=null ? setRedirect(true) : null);
|
||||||
})
|
})
|
||||||
const [id, setId] = useState('')
|
const [id, setId] = useState('')
|
||||||
const [redirect, setRedirect] = useState(false)
|
const [redirect, setRedirect] = useState(false)
|
||||||
@ -26,6 +28,11 @@ function App() {
|
|||||||
return (
|
return (
|
||||||
<Router>
|
<Router>
|
||||||
{redirect ? <Redirect to="/game"></Redirect> : <NameInput idCallback = {idCallback}/>}
|
{redirect ? <Redirect to="/game"></Redirect> : <NameInput idCallback = {idCallback}/>}
|
||||||
|
<Switch>
|
||||||
|
<Route path="/game">
|
||||||
|
<Navbar></Navbar>
|
||||||
|
</Route>
|
||||||
|
</Switch>
|
||||||
</Router>
|
</Router>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
|
|
||||||
const GameBoard = () => {
|
|
||||||
|
|
||||||
}
|
|
||||||
export default GameBoard
|
|
||||||
@ -1,15 +1,26 @@
|
|||||||
import React, { useEffect } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
|
import axios from 'axios';
|
||||||
const Navbar = () => {
|
const Navbar = () => {
|
||||||
const [names, setNames] = useState([]);
|
|
||||||
useEffect(
|
const [players, setPlayers] = useState([]);
|
||||||
|
useEffect(()=>{
|
||||||
//fetching names, time and other data
|
//fetching names, time and other data
|
||||||
);
|
axios.get('http://localhost:3001/room/',{
|
||||||
|
withCredentials:true,
|
||||||
|
mode: 'cors',
|
||||||
|
}).then((response)=>{
|
||||||
|
|
||||||
|
setPlayers(response.data.players);
|
||||||
|
console.log(response.data.players);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
,[]);
|
||||||
return(
|
return(
|
||||||
<div>
|
<div>
|
||||||
{names.map((name)=>{
|
{players.map((name)=>
|
||||||
<h1>{name}</h1>
|
<p key={name.player}>{name.player}</p>
|
||||||
})}
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
export default Navbar;
|
||||||
Loading…
Reference in New Issue
Block a user