added rooms operations
joining, creating new if full
This commit is contained in:
parent
12372ef4f2
commit
6ffc7fb3b8
1
backend/package-lock.json
generated
1
backend/package-lock.json
generated
@ -5,6 +5,7 @@
|
|||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"body-parser": "^1.19.0",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"mongoose": "^5.12.0"
|
"mongoose": "^5.12.0"
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"body-parser": "^1.19.0",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"mongoose": "^5.12.0"
|
"mongoose": "^5.12.0"
|
||||||
|
|||||||
@ -4,22 +4,44 @@ var router = express.Router();
|
|||||||
var RoomModel = require('../schemas/room');
|
var RoomModel = require('../schemas/room');
|
||||||
|
|
||||||
//creating new room in db
|
//creating new room in db
|
||||||
router.post('/add', function (req, res) {
|
router.post('/add', async function (req, res) {
|
||||||
|
RoomModel.findOne( { full: false, started: false }, function (err, results) {
|
||||||
//setting values from request to object
|
if (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
if (!results) {
|
||||||
let newRoom = new RoomModel({
|
let newRoom = new RoomModel({
|
||||||
id: req.body.id,
|
createDate: new Date,
|
||||||
createDate: req.body.createDate,
|
full: false,
|
||||||
started: req.body.started,
|
started: false,
|
||||||
players: req.body.players,
|
players: [req.body.name],
|
||||||
positions: req.body.positions
|
|
||||||
});
|
});
|
||||||
|
|
||||||
//saving room in db
|
|
||||||
newRoom.save()
|
newRoom.save()
|
||||||
.then(() => res.status(200).json('Added new room'))
|
.then(() => res.status(200).json('Added new room'))
|
||||||
.catch(err => res.status(400).json('Error: ' + err));
|
.catch(err => res.status(400).json('Error: ' + err));
|
||||||
|
}else {
|
||||||
|
|
||||||
|
let players = results.players;
|
||||||
|
players.push(req.body.name);
|
||||||
|
let updateObj = {
|
||||||
|
players: players,
|
||||||
|
}
|
||||||
|
players.length === 4 ? updateObj.full = true : updateObj.full = false;
|
||||||
|
RoomModel.findOneAndUpdate(
|
||||||
|
{ _id: results._id },
|
||||||
|
updateObj,
|
||||||
|
function (err, docs) {
|
||||||
|
if (err){
|
||||||
|
console.log(err)
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
console.log("Updated Docs : ", docs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
//deleting room after game ends
|
//deleting room after game ends
|
||||||
|
|||||||
@ -3,9 +3,9 @@ var mongoose = require('mongoose');
|
|||||||
var Schema = mongoose.Schema;
|
var Schema = mongoose.Schema;
|
||||||
|
|
||||||
var RoomSchema = new Schema({
|
var RoomSchema = new Schema({
|
||||||
id: Number,
|
|
||||||
createDate: Date,
|
createDate: Date,
|
||||||
started: Boolean,
|
started: Boolean,
|
||||||
|
full: Boolean,
|
||||||
players: Array,
|
players: Array,
|
||||||
positions: Map
|
positions: Map
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,6 +1,11 @@
|
|||||||
const express = require("express");
|
const express = require("express");
|
||||||
const cors = require('cors');
|
const cors = require('cors');
|
||||||
|
const bodyParser = require('body-parser');
|
||||||
const app = express();
|
const app = express();
|
||||||
|
app.use(bodyParser.urlencoded({
|
||||||
|
extended: true
|
||||||
|
}));
|
||||||
|
app.use(bodyParser.json());
|
||||||
app.use(cors());
|
app.use(cors());
|
||||||
const PORT = 3000|| process.env.PORT;
|
const PORT = 3000|| process.env.PORT;
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,11 @@ const NameInput = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const handleButtonClick = () => {
|
const handleButtonClick = () => {
|
||||||
axios.post('http://localhost:3000/room/add')
|
axios.post('http://localhost:3000/room/add',{
|
||||||
|
name: inputValue
|
||||||
|
},{
|
||||||
|
"Content-Type": "application/json"
|
||||||
|
})
|
||||||
}
|
}
|
||||||
return(
|
return(
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user