'use strict'; const httpStatus = require('http-status'); const generateControllers = require('../../core/controllers'); const eventService = require('./event.service'); const { extractParamsFromRequest, handleErrorResponse, handleResultResponse } = require('../../helpers/controller.helper'); //PRUEBA const SchemaValidator = require('../../middlewares/schemaValidator'); const eventValidation = require('./event.validations'); const Joi = require('joi'); // Module Name const MODULE_NAME = '[event.controller]'; const controllerOptions = { MODULE_NAME }; const extraControllers = { findNext: async (req, res, next) => { const params = extractParamsFromRequest(req, res, { includeAll: false }); try { const result = await eventService.fetch(params, { user: req.user, lapse: 'next' }); console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); // Joi validation options const _validationOptions = { abortEarly: false, // abort after the last validation error allowUnknown: true, // allow unknown keys that will be ignored stripUnknown: true // remove unknown keys from the validated data }; console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa222'); const data = Joi.validate(result.dataValues, eventValidation.EventsListOutputType, _validationOptions); console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa333'); console.log(data); return handleResultResponse(result, result.count, params, res); } catch (error) { handleErrorResponse(MODULE_NAME, 'findNext', error, res); } }, findCurrent: async (req, res, next) => { const params = extractParamsFromRequest(req, res, {}); try { const result = await eventService.fetch(params, { user: req.user, lapse: 'current' }); return handleResultResponse(result, result.count, params, res); } catch (error) { handleErrorResponse(MODULE_NAME, 'findNext', error, res); } }, findPass: async (req, res, next) => { const params = extractParamsFromRequest(req, res, {}); try { const result = await eventService.fetch(params, { user: req.user, lapse: 'pass' }); return handleResultResponse(result, result.count, params, res); } catch (error) { handleErrorResponse(MODULE_NAME, 'findNext', error, res); } }, createInscription: async(req, res, next) => { const params = extractParamsFromRequest(req, res, {}); console.log('crear inscripcionnnnnnnnnnnnnnnnnnnnnnnnnnnn'); return handleResultResponse(result, result.count, params, res); }, findOne: async (req, res, next) => { const params = extractParamsFromRequest(req, res, { includeAll: false }); try { const result = await eventService.fetchOne(params, { user: req.user }); return handleResultResponse(result, null, params, res, (result === null) ? httpStatus.NOT_FOUND : httpStatus.OK); } catch (error) { handleErrorResponse(MODULE_NAME, 'findOne', error, res) } }, }; module.exports = generateControllers(eventService, extraControllers, controllerOptions);