diff --git a/modules/events/event.controller.js b/modules/events/event.controller.js index da5c523..f381e8b 100644 --- a/modules/events/event.controller.js +++ b/modules/events/event.controller.js @@ -35,17 +35,36 @@ const extraControllers = { } }, - getInscription: async (req, res, next) => { + //Funcion que devuelve: + //1. Todas las inscripciones de un evento, cuando el usuario es administrador (SIN HACER) + //2. Todas las inscripciones de un usuario, cuando no nos llega ningun param con id + getInscriptions: async (req, res, next) => { +console.log('aaaaaaaaaaaaaaaaaaaaaaaa'); const params = extractParamsFromRequest(req, res, {}); const eventId = params.params.id; const userId = req.user.id; - try { - const result = await eventInscriptionService._getInscriptionByEventAndUser(eventId, userId); - handleResultResponse(result, null, params, res, (result === null) ? httpStatus.NOT_FOUND : httpStatus.OK); - } catch (error) { - handleErrorResponse(MODULE_NAME, 'getInscription', error, res) + //req.user.rol Administrador ...... + + //req.user.rol normal ...... + + if (eventId) { + try { + const result = await eventInscriptionService._getInscriptionByEventAndUser(eventId, userId); + handleResultResponse(result, null, params, res, (result === null) ? httpStatus.NOT_FOUND : httpStatus.OK); + } catch (error) { + handleErrorResponse(MODULE_NAME, 'getInscriptions', error, res) + } } + else{ + try { + const result = await eventInscriptionService._getInscriptionsUser(userId); + handleResultResponse(result, null, params, res, (result === null) ? httpStatus.NOT_FOUND : httpStatus.OK); + } catch (error) { + handleErrorResponse(MODULE_NAME, 'getInscriptions', error, res) + } + } + }, deleteInscription: async (req, res, next) => { diff --git a/modules/events/event.routes.js b/modules/events/event.routes.js index 596e4e6..4272d94 100644 --- a/modules/events/event.routes.js +++ b/modules/events/event.routes.js @@ -118,13 +118,13 @@ routes.get('/events/:id/multimedias', // Esto da las inscripciones (1) de un usuario pero si el usuario fuera el administrador podría todas las inscripciones de un evento routes.get('/events/:id/inscriptions', isLoggedUser, - eventController.getInscription, + eventController.getInscriptions, ); -// Esto da las inscripciones (1) de un usuario pero si el usuario fuera el administrador podría todas las inscripciones de un evento -routes.get('/inscriptions/:id/inscriptions', +// Esto da todas las inscripciones de un usuario +routes.get('/me/inscriptions', isLoggedUser, - eventController.getInscription, + eventController.getInscriptions, ); // Hacer una inscripción diff --git a/modules/events/events_inscriptions.service.js b/modules/events/events_inscriptions.service.js index 5163bc9..963e974 100644 --- a/modules/events/events_inscriptions.service.js +++ b/modules/events/events_inscriptions.service.js @@ -25,6 +25,14 @@ const extraMethods = { }) }, + _getInscriptionsUser: (userId) => { + return models.EventInscription.findAll({ + where: { + userId: userId + }, + }) + }, + //Nos devuelve el número de inscripciones confirmadas para ese evento sin tener en cuenta reservas _getCountInscriptionsWithoutReservationAndOverflow: (eventId) => { return models.EventInscription.count({