Skip to content

Commit

Permalink
[WIP] update user after game
Browse files Browse the repository at this point in the history
  • Loading branch information
pelazas committed Mar 7, 2024
1 parent 9da71eb commit 83c5d21
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 8 deletions.
8 changes: 4 additions & 4 deletions game/gameservice/game-model.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
const mongoose = require('mongoose');



const gameSchema = new mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
players:[{
type: mongoose.Schema.Types.ObjectId,ref:'User',
type: mongoose.Schema.Types.ObjectId,
ref:'User',
required: true,
}],
questions:[
{
type: mongoose.Schema.Types.ObjectId,ref:'Question4Answers'
type: mongoose.Schema.Types.ObjectId,
ref:'Question4Answers'
}
],
});
Expand Down
18 changes: 15 additions & 3 deletions game/gameservice/gameLogic.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,30 @@
const Game = require("./game-model")
const mongoose = require('mongoose');
const User = require("../../users/userservice/user-model");
const Question4Answers = require("../qgservice/Question4Answers");

async function createGame(questions, users) {
try {
// Create a new Game instance
const game = new Game({
_id: new mongoose.Types.ObjectId(),
players: users,
questions: questions,
players: users.map(user => user._id),
questions: questions.map(question => question._id),
});

// Save the game to the database
const savedGame = await game.save();

console.log("aqui")

await User.updateMany(
{ _id: { $in: users.map(user => user._id) } },
{ $set: { lastGame: savedGame._id } },
{ multi: true }
);

const populatedGame = await Game.findById(savedGame._id).populate('players');
// await savedGame.populate('questions').execPopulate();
console.log(populatedGame);
return savedGame;
} catch (error) {
console.error('Error creating game:', error);
Expand Down
6 changes: 5 additions & 1 deletion users/userservice/user-model.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
username: {
type: String,
required: true,
Expand All @@ -13,9 +14,12 @@ const userSchema = new mongoose.Schema({
type: Date,
default: Date.now,
},
lastGame: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Game',
},

// many to one con group
// many to one con lastgame
// int preguntas acertadas
// int preguntas falladas
// int puntuacion
Expand Down
1 change: 1 addition & 0 deletions users/userservice/user-service.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ app.post('/adduser', async (req, res) => {
_id: new mongoose.Types.ObjectId(),
username: req.body.username,
password: hashedPassword,
lastGame: null,
});

await newUser.save();
Expand Down

0 comments on commit 83c5d21

Please sign in to comment.