app2-api/modules/events/events_inscriptions.controller.js

57 lines
2.0 KiB
JavaScript
Raw Normal View History

2019-08-16 17:49:25 +00:00
'use strict';
const generateControllers = require('../../core/controllers');
const eventInscriptionService = require('./events_inscriptions.service');
2022-02-17 12:12:13 +00:00
const { extractParamsFromRequest } = require('../../helpers/controller.helper');
2019-08-16 17:49:25 +00:00
// Module Name
const MODULE_NAME = '[eventInscription.controller]';
const controllerOptions = { MODULE_NAME };
2022-02-17 12:12:13 +00:00
const extraControllers = {
prepareInscription: async (req, res, next) => {
console.log('>>>>>>>>>>>>>>>>>>>> prepareInscription');
const params = extractParamsFromRequest(req, res, {});
let typeInscription = 'presencial';
//online
if (req.body.type === 'online') {
if (req.body.code)
typeInscription = 'reservation online'
else if (req.body.group_size > 1)
typeInscription = 'reservation online'
else typeInscription = 'online'
}
//onsite
else {
if (req.body.code)
typeInscription = 'reservation presencial'
else if (req.body.group_size > 1)
typeInscription = 'reservation presencial'
};
let dataInscription = {
eventId: params.params.id,
reservationCode: (req.user) ? req.body.code : Buffer.from(req.body.code, 'base64').toString('ascii'),
type: typeInscription,
source: (req.user) ? 'app' : 'web', //En el caso de tener ya usuario viene por APP sino viene por web
validated: null, //si no esta validado la inscripción es a la lista de espera
inscriptionsWithoutReservationAndOverflowCount: null, //nº total de inscritos sin reserva y sin overflow asignada
inscriptionsWithReservationCount: null, //nº total de inscritos a la reserva asignada
event: null,
reservation: null,
inscription: null,
};
res.locals.dataInscription = dataInscription;
next();
},
};
2019-08-16 17:49:25 +00:00
module.exports = generateControllers(eventInscriptionService, extraControllers, controllerOptions);