From a4b814747e3b932e02e290c16f34252430854c61 Mon Sep 17 00:00:00 2001 From: david Date: Sat, 31 Aug 2019 12:38:13 +0200 Subject: [PATCH] a --- modules/auth/user.service.js | 11 ++++++++++- modules/events/event.controller.js | 20 ++++++++++++++++++++ modules/events/event.routes.js | 5 +++++ modules/events/events_inscriptions.model.js | 9 +++++++++ 4 files changed, 44 insertions(+), 1 deletion(-) diff --git a/modules/auth/user.service.js b/modules/auth/user.service.js index 1f0560a..bb4d093 100644 --- a/modules/auth/user.service.js +++ b/modules/auth/user.service.js @@ -34,7 +34,16 @@ const extraMethods = { result = {user: user, isCreated: created}}); } return result; - } + }, + + _getUserByEmail: async (email) => { + return models.User.findOne({ + where: { + email: email, + }, + }) + }, + }; diff --git a/modules/events/event.controller.js b/modules/events/event.controller.js index 0981b3f..667555e 100644 --- a/modules/events/event.controller.js +++ b/modules/events/event.controller.js @@ -513,6 +513,26 @@ console.log(headerMail, bodyMail); } }, + validateInscription: async (req, res, next) => { + const params = extractParamsFromRequest(req, res, {}); + var eventId = params.params.id; + var email = params.params.email; + + try { + const user = await userService._getUserByEmail(email); + if (user) { + const result = await eventInscriptionService._getInscriptionByEventAndUser(eventId, user.id) + if (result) + return handleResultResponse(result.stateText, null, params, res, httpStatus.OK); + } + + return handleResultResponse("No hay inscripción con ese email", null, params, res, httpStatus.NOT_FOUND); + + } catch (error) { + return handleErrorResponse(MODULE_NAME, 'validateInscription', error, res) + } + }, + sendMailTicket: async (req, res, next) => { const params = extractParamsFromRequest(req, res, {}); const inscriptionId = params.params.id; diff --git a/modules/events/event.routes.js b/modules/events/event.routes.js index 21d0d30..1173d56 100644 --- a/modules/events/event.routes.js +++ b/modules/events/event.routes.js @@ -246,6 +246,11 @@ routes.post('/web/events/:id/inscriptions', eventController.createInscription ); +// Comprobar si estoy inscrito al congreso por la web +routes.get('/web/events/:id/inscriptions/:email', + eventController.validateInscription +); + /* routes.get('/tickets/:id/', diff --git a/modules/events/events_inscriptions.model.js b/modules/events/events_inscriptions.model.js index dd80e7c..92eaa56 100644 --- a/modules/events/events_inscriptions.model.js +++ b/modules/events/events_inscriptions.model.js @@ -105,5 +105,14 @@ module.exports = function (sequelize, DataTypes) { } }); + EventInscription.addScope('includeUser', () => { + return { + include: [{ + model: sequelize.models.User, + as: 'user', + }], + } + }); + return EventInscription; }; \ No newline at end of file