added rooms operations

joining, creating new if full
This commit is contained in:
Wenszel 2021-03-14 19:38:37 +01:00
parent 12372ef4f2
commit 6ffc7fb3b8
6 changed files with 50 additions and 17 deletions

View File

@ -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"

View File

@ -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"

View File

@ -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) {
let newRoom = new RoomModel({ console.log(err);
id: req.body.id, }
createDate: req.body.createDate, if (!results) {
started: req.body.started, let newRoom = new RoomModel({
players: req.body.players, createDate: new Date,
positions: req.body.positions full: false,
started: false,
players: [req.body.name],
});
newRoom.save()
.then(() => res.status(200).json('Added new room'))
.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);
}
}
);
}
}); });
//saving room in db
newRoom.save()
.then(() => res.status(200).json('Added new room'))
.catch(err => res.status(400).json('Error: ' + err));
}); });
//deleting room after game ends //deleting room after game ends

View File

@ -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
}); });

View File

@ -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;

View File

@ -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>