app2-api/modules/events/event.controller.js
2019-07-16 20:18:28 +02:00

86 lines
3.3 KiB
JavaScript

'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);