Función callback al recuperar un evento para rellenar el color de la inscripción normal

This commit is contained in:
David Arranz 2022-09-28 18:05:33 +02:00
parent 400d9e906a
commit 9db8d93b9b
2 changed files with 29 additions and 12 deletions

View File

@ -2,7 +2,7 @@ const _find = require('./find');
const httpStatus = require('http-status'); const httpStatus = require('http-status');
const { extractParamsFromRequest, handleErrorResponse, handleResultResponse } = require('../../helpers/controller.helper'); const { extractParamsFromRequest, handleErrorResponse, handleResultResponse } = require('../../helpers/controller.helper');
function buildContext(req, config ) { function buildContext(req, config) {
return { return {
user: req.user, user: req.user,
scopes: [], scopes: [],
@ -51,7 +51,8 @@ const generateControllers = (service, extraControllers = {}, options = {}) => {
return async (req, res, next) => { return async (req, res, next) => {
const params = extractParamsFromRequest(req, res, _options.params.findOne); const params = extractParamsFromRequest(req, res, _options.params.findOne);
try { try {
const result = await service.fetchOne(params, buildContext(req, config)); let result = await service.fetchOne(params, buildContext(req, config));
result = _options.findOneCallback !== undefined ? _options.findOneCallback(result) : result;
return handleResultResponse(result, null, params, res, (result === null) ? httpStatus.NOT_FOUND : httpStatus.OK); return handleResultResponse(result, null, params, res, (result === null) ? httpStatus.NOT_FOUND : httpStatus.OK);
} catch (error) { } catch (error) {
console.log(error); console.log(error);
@ -61,7 +62,7 @@ const generateControllers = (service, extraControllers = {}, options = {}) => {
}, },
count: (config) => { count: (config) => {
return async(req, res, next) => { return async (req, res, next) => {
const params = extractParamsFromRequest(req, res, _options.params.count); const params = extractParamsFromRequest(req, res, _options.params.count);
try { try {
const result = await service.count(params, buildContext(req, config)); const result = await service.count(params, buildContext(req, config));
@ -77,7 +78,7 @@ const generateControllers = (service, extraControllers = {}, options = {}) => {
const params = extractParamsFromRequest(req, res, _options.params.count); const params = extractParamsFromRequest(req, res, _options.params.count);
try { try {
//Asignamos el usuario que crea el elemento si viene //Asignamos el usuario que crea el elemento si viene
req.body.userId = (req.user)? req.user.id : null; req.body.userId = (req.user) ? req.user.id : null;
//Añadimos los parametros que vienen por url y en el body //Añadimos los parametros que vienen por url y en el body
let values = Object.assign({}, params.params, req.body); let values = Object.assign({}, params.params, req.body);
//Quitamos el campo id si viniera, para que no de un conflicto con el id autoinc //Quitamos el campo id si viniera, para que no de un conflicto con el id autoinc

View File

@ -28,7 +28,23 @@ const userService = require("../auth/user.service");
// Module Name // Module Name
const MODULE_NAME = "[event.controller]"; const MODULE_NAME = "[event.controller]";
const controllerOptions = { MODULE_NAME };
const controllerOptions = {
MODULE_NAME,
findOneCallback: (result) => {
// Si hay inscripciones normales, ponerles el color por defecto 'verde'.
result.inscriptions = result.inscriptions.map((inscription) => {
const isVirtual = inscription.type === "online" || inscription.type === "online group";
if ((inscription.reservationId === null) && (!isVirtual)) {
// Inscripción normal
inscription.color = 'green';
}
return inscription;
});
return result;
}
};
function generateMemberInscription(user, inscription, reservation) { function generateMemberInscription(user, inscription, reservation) {
let memberInscription = null; let memberInscription = null;