From 1e701ffbde491d14731f687937a90a64dfa9eb55 Mon Sep 17 00:00:00 2001 From: David Arranz Date: Wed, 28 Aug 2024 18:25:50 +0200 Subject: [PATCH] . --- core/controllers/index.js | 19 +++++++++++++------ modules/events/event.routes.js | 12 ++++++++++++ modules/events/event.routes.v4.js | 6 ++++-- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/core/controllers/index.js b/core/controllers/index.js index c139da3..b93d0a8 100644 --- a/core/controllers/index.js +++ b/core/controllers/index.js @@ -35,20 +35,27 @@ const generateControllers = (service, extraControllers = {}, options = {}) => { const defaultControllers = { find: (config) => { return async (req, res, next) => { + console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'); config = config || { scopes: [], }; + const params = extractParamsFromRequest(req, res, _options.params.find); try { const result = await service.fetchAll(params, buildContext(req, config)); - //Comprobamos si hay que remover campos - console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>', res.locals); - if (res.locals.fields['removeFields']) - console.log('quito>>>>', res.locals.fields['removeFields']) - else - console.log('NO HAGOI NADA'); + //Tratamos resultado, si hay que remover campos para API4 web + if (res.locals.v4){ + const arrayFieldsremove = res.locals.v4.removeFields; + result.rows.map((row)=>{ + arrayFieldsremove.forEach(campo => { + if (campo in row) { + delete row[campo]; + } + }); + }); + }; return handleResultResponse(result.rows, result.count, params, res); } catch (error) { diff --git a/modules/events/event.routes.js b/modules/events/event.routes.js index b8b839d..6ccd631 100644 --- a/modules/events/event.routes.js +++ b/modules/events/event.routes.js @@ -362,9 +362,21 @@ routes.get( }), // PaginateMiddleware.middleware(), // SortMiddleware.middleware({ default: "init_available_date" }), + + /* + (req, res, next) => { + res.locals.v4 = {removeFields : ["partners", "speakers", "details", "multimedias"]}; + + eventController.find({ + scopes: ["defaultScope", "withOpenInscriptions"], + })(req,res,next); + } +*/ + eventController.find({ scopes: ["defaultScope", "withOpenInscriptions"], }) + ); // Hacer una inscripción por la web diff --git a/modules/events/event.routes.v4.js b/modules/events/event.routes.v4.js index 030408d..5799647 100644 --- a/modules/events/event.routes.v4.js +++ b/modules/events/event.routes.v4.js @@ -102,13 +102,15 @@ routes.get( FieldMiddleware.middleware({ validFields: ["id", "name"], }), + (req, res, next) => { - res.locals.fields['removeFields'] = ["partners"], + res.locals.v4 = {removeFields : ["partners", "speakers", "details", "multimedias"]}; eventController.find({ scopes: ["defaultScope", "withOpenInscriptions"], - }) + })(req,res,next); } + ); /**