From 9dce11831608dbfbac0a73d75ce9728aa00cd38c Mon Sep 17 00:00:00 2001 From: david Date: Fri, 19 Jul 2019 21:36:20 +0200 Subject: [PATCH] . --- modules/auth/user.service.js | 4 +- modules/events/event.controller.js | 69 +++++++++++++++---- modules/events/event.routes.js | 1 + modules/events/event.service.js | 17 ++--- modules/events/events_reservations.service.js | 20 ++---- 5 files changed, 71 insertions(+), 40 deletions(-) diff --git a/modules/auth/user.service.js b/modules/auth/user.service.js index 6443884..23fcff2 100644 --- a/modules/auth/user.service.js +++ b/modules/auth/user.service.js @@ -10,8 +10,8 @@ const extraMethods = { _getOrCreateUser: async (params, context) => { let {user} = context; -console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><< USER'); -console.log(user); + console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><< USER'); + console.log(user); if (user.id) { return user; } else { diff --git a/modules/events/event.controller.js b/modules/events/event.controller.js index 50697c2..b8a0ddf 100644 --- a/modules/events/event.controller.js +++ b/modules/events/event.controller.js @@ -1,5 +1,5 @@ 'use strict'; - +const httpStatus = require('http-status'); const generateControllers = require('../../core/controllers'); const eventService = require('./event.service'); const eventReservationService = require('./events_reservations.service'); @@ -90,12 +90,30 @@ const extraControllers = { */ + checkReservationCode: async (req, res, next) => { + const params = extractParamsFromRequest(req, res, {}); + + const eventId = params.params.id; + const encodedInvitationCode = params.params.encodedInvitationCode; + + const registrationCode = encodedInvitationCode; //Buffer.from(req.params.encodedInvitationCode, 'base64').toString('ascii'); + + try { + const result = await eventReservationService._getReservaByCode(eventId, registrationCode); + handleResultResponse(!!result, null, params, res, (result === null) ? httpStatus.NOT_FOUND : httpStatus.OK); + } catch(error) { + handleErrorResponse(MODULE_NAME, 'checkReservationCode', error, res) + } + }, + + createInscription: async(req, res, next) => { const params = extractParamsFromRequest(req, res, {}); let context = { eventId : params.params.id, - code : req.body.code, + encodedInvitationCode : req.body.encodedInvitationCode, + code: null, event : null, reservation : null, inscriptionCount : null, @@ -113,28 +131,55 @@ const extraControllers = { }, } + context.code = context.encodedInvitationCode; //Buffer.from(context.encodedInvitationCode, 'base64').toString('ascii'); + //Si viene codigo invitacion _getLevelAndPartner()--------------------- if (context.code) { - context.reservation = await eventReservationService._getReserva(params, context); - context.reservation = context.reservation.toJSON(); - if (context.reservation) - context.event = context.reservation.Event; + try { + context.reservation = await eventReservationService._getReservaByCode(context.eventId, context.code); + if (context.reservation) { + context.reservation = await context.reservation.toJSON(); + context.event = context.reservation.Event; + } else { + // No se ha encontrado + return handleResultResponse("Código de reserva no encontrado", null, params, res, httpStatus.NOT_FOUND); + } + } catch(error) { + return handleErrorResponse(MODULE_NAME, 'createInscription', error, res) + } } else { - context.event = await eventService._getEvent(params); - context.event = context.event.toJSON(); + try { + context.event = await eventService._getEvent(context.eventId); + if (context.event) { + context.event = await context.event.toJSON(); + } else { + // No se ha encontrado + return handleResultResponse("Evento no encontrado", null, params, res, httpStatus.NOT_FOUND); + } + } catch(error) { + return handleErrorResponse(MODULE_NAME, 'createInscription', error, res) + } } + + + console.log('esta es la reserva y el evento a la que pertenece'); console.log(context.reservation); console.log(context.event); //creamos o recuperamos el usuario .then(_getOrCreateUser)------------- - context.user = await userService._getOrCreateUser(params, context); - context.user = context.user.toJSON(); - console.log('creamos o recuperamos el usuario'); - console.log(context.user); + try { + context.user = await userService._getOrCreateUser(params, context); + context.user = await context.user.toJSON(); + console.log('creamos o recuperamos el usuario'); + console.log(context.user); + } catch(error) { + return handleErrorResponse(MODULE_NAME, 'createInscription', error, res); + } + inscriptionService._existsInscription(params, context) diff --git a/modules/events/event.routes.js b/modules/events/event.routes.js index 803a054..d3171db 100644 --- a/modules/events/event.routes.js +++ b/modules/events/event.routes.js @@ -124,6 +124,7 @@ routes.delete('/events/:id/inscriptions', routes.get('/events/:id/reservations/:encodedInvitationCode', //isLoggedUser, //eventController.findComments + eventController.checkReservationCode ); diff --git a/modules/events/event.service.js b/modules/events/event.service.js index 5ae69fe..7e83c2c 100644 --- a/modules/events/event.service.js +++ b/modules/events/event.service.js @@ -78,19 +78,12 @@ const extraMethods = { }, - _getEvent: (params, context) => { - const id = params.eventId; - - return new Promise(function (resolve, reject) { - models.Event.findOne(params,) - .then(function (result) { - resolve(result); - }) - .catch(function (error) { - reject(error) - }); + _getEvent: (eventId) => { + return models.Event.findOne({ + where: { + id: eventId + } }); - }, _updateEvent: (params, context) => { diff --git a/modules/events/events_reservations.service.js b/modules/events/events_reservations.service.js index b9e5189..96e48ea 100644 --- a/modules/events/events_reservations.service.js +++ b/modules/events/events_reservations.service.js @@ -7,20 +7,12 @@ const models = require('../../core/models'); const extraMethods = { - _getReserva: (params, context) => { - const wheraaaae = { reservation_code: context.code, eventId: context.eventId}; - - return new Promise (function (resolve, reject) { - models.EventReservation.findOne({ - where: wheraaaae, - include: [{ - model: models.Event, - }], - }).then(function (result) { - resolve(result); - }).catch(function (error) { - reject(error) - }); + _getReservaByCode: (eventId, code) => { + return models.EventReservation.findOne({ + where: { reservation_code: code, eventId: eventId }, + include: [{ + model: models.Event, + }], }) },