From 5b20d94823002b90918f1eefc3373476f9fcde56 Mon Sep 17 00:00:00 2001 From: david Date: Fri, 16 Aug 2019 19:49:25 +0200 Subject: [PATCH] a --- core/controllers/index.js | 3 ++ modules/events/event.routes.js | 35 ++++++++++++++----- .../events/events_inscriptions.controller.js | 14 ++++++++ modules/events/events_inscriptions.model.js | 3 +- modules/events/events_reservations.model.js | 16 +++++++++ 5 files changed, 62 insertions(+), 9 deletions(-) create mode 100644 modules/events/events_inscriptions.controller.js diff --git a/core/controllers/index.js b/core/controllers/index.js index c870377..20b3bdd 100644 --- a/core/controllers/index.js +++ b/core/controllers/index.js @@ -89,6 +89,9 @@ const generateControllers = (service, extraControllers = {}, options = {}) => { return async (req, res, next) => { try { const params = extractParamsFromRequest(req, res, _options.params.update); +console.log('paraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaams'); + console.log(req.body); + const response = await service.update(params, req.body, buildContext(req, config)); // https://sequelize.org/master/class/lib/model.js~Model.html#static-method-update // Update devuelve un array de un elemento con el nĂºmero de filas afectadas diff --git a/modules/events/event.routes.js b/modules/events/event.routes.js index 7db8131..4516cec 100644 --- a/modules/events/event.routes.js +++ b/modules/events/event.routes.js @@ -10,6 +10,7 @@ const SortMiddleware = require('../../middlewares/sort'); //const entityValidation = require('./entity.validations'); const eventController = require('./event.controller'); +const eventInscriptionController = require('./events_inscriptions.controller'); const eventReservationController = require('./events_reservations.controller'); const eventValidation = require('./event.validations'); @@ -331,17 +332,35 @@ routes.post('/admin/reservations', routes.get('/admin/reservations/:id', // isAdministratorUser, //SchemaValidator(eventValidation.ReservationInputType, true), - eventReservationController.findOne(), + (req, res, next) => { + return eventReservationController.findOne({ + scopes: ['includeEvent', 'includeInscriptions'] + })(req, res, next) + }, ); -/*// Un ponente -routes.get('/admin/speakers/:id', - isAdministratorUser, - eventController.findOne({ - scopes: ['defaultScope', 'includeValues', 'includeMultimedias'] - }) -);*/ +routes.put('/admin/reservations/:id', + // isAdministratorUser, + //SchemaValidator(eventValidation.ReservationInputType, true), + eventReservationController.update(), +); +// Borrar ponente +routes.delete('/admin/reservations/:id', +// isAdministratorUser, + eventReservationController.delete() +); + +routes.get('/inscriptions', + // isAdministratorUser, + //SchemaValidator(eventValidation.ReservationInputType, true), + (req, res, next) => { + return eventInscriptionController.find({ + scopes: ['defaultScope'] + })(req, res, next) + }, + +); module.exports = routes; \ No newline at end of file diff --git a/modules/events/events_inscriptions.controller.js b/modules/events/events_inscriptions.controller.js new file mode 100644 index 0000000..8a03a5d --- /dev/null +++ b/modules/events/events_inscriptions.controller.js @@ -0,0 +1,14 @@ +'use strict'; + +const generateControllers = require('../../core/controllers'); +const eventInscriptionService = require('./events_inscriptions.service'); + + +// Module Name +const MODULE_NAME = '[eventInscription.controller]'; + +const controllerOptions = { MODULE_NAME }; +const extraControllers = {}; + +module.exports = generateControllers(eventInscriptionService, extraControllers, controllerOptions); + diff --git a/modules/events/events_inscriptions.model.js b/modules/events/events_inscriptions.model.js index 8e7d98c..d5ae4c6 100644 --- a/modules/events/events_inscriptions.model.js +++ b/modules/events/events_inscriptions.model.js @@ -64,7 +64,8 @@ module.exports = function (sequelize, DataTypes) { defaultScope: { order: [ ['date', 'DESC'] - ] + ], + include: [{ model: sequelize.models.User, as: 'user' }], }, }); diff --git a/modules/events/events_reservations.model.js b/modules/events/events_reservations.model.js index 6bbd8e4..c1e13ab 100644 --- a/modules/events/events_reservations.model.js +++ b/modules/events/events_reservations.model.js @@ -101,8 +101,24 @@ module.exports = function (sequelize, DataTypes) { foreignKey: 'overflow_reservationId' }); EventReservation.Entity = EventReservation.belongsTo(models.Entity, { foreignKey: 'entityId' }); EventReservation.Event = EventReservation.belongsTo(models.Event, { foreignKey: 'eventId' }); + EventReservation.Inscriptions = EventReservation.hasMany(models.EventInscription, { foreignKey: 'reservationId' }); EventReservation.UserCreate = EventReservation.belongsTo(models.User, { foreignKey: 'userId' }); }; + EventReservation.addScope('includeEvent', () => { + return { + include: [ + { model: sequelize.models.Event} + ] + } + }); + + EventReservation.addScope('includeInscriptions', () => { + return { + include: [ + { model: sequelize.models.EventInscription } + ] + } + }); return EventReservation; }; \ No newline at end of file