40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
|
|
// Modello Mongoose per le Scommesse
|
|
const Bet = require('../models/bet.model');
|
|
|
|
// Il router è ora una factory function che riceve l'istanza di sequelize
|
|
module.exports = (sequelize) => {
|
|
const { populateBetsWithUsers } = require('../utils/populateBets')(sequelize);
|
|
|
|
// POST /api/bets
|
|
router.post('/', async (req, res) => {
|
|
try {
|
|
const betData = req.body;
|
|
// Assicura che gli ID utente dal frontend siano correttamente parsati come interi per lo schema MongoDB
|
|
const participants = betData.participants.map(p => ({
|
|
...p,
|
|
user: parseInt(p.user, 10)
|
|
}));
|
|
|
|
const bet = new Bet({
|
|
...betData,
|
|
participants,
|
|
startDate: new Date(),
|
|
status: 'ACTIVE'
|
|
});
|
|
await bet.save();
|
|
|
|
// Popola nuovamente la scommessa creata per restituire oggetti utente completi
|
|
const populatedMongoBet = await Bet.findById(bet._id);
|
|
const finalBet = (await populateBetsWithUsers([populatedMongoBet]))[0];
|
|
res.status(201).json(finalBet);
|
|
} catch (error) {
|
|
res.status(400).json({ message: 'Error creating bet', error: error.message });
|
|
}
|
|
});
|
|
|
|
return router;
|
|
};
|