From 2c762813ba65e553ee861cc034e5fe2499b5a9b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Thu, 1 Mar 2018 15:52:48 +0100 Subject: [PATCH] Follow middleware pattern, return a function as the actual middleware --- lib/cartodb/controllers/named_maps_admin.js | 10 +++++----- lib/cartodb/middleware/context/index.js | 2 +- lib/cartodb/middleware/context/locals.js | 9 +++++---- test/unit/cartodb/prepare-context.test.js | 3 ++- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/cartodb/controllers/named_maps_admin.js b/lib/cartodb/controllers/named_maps_admin.js index e8fd8f55..0728b38c 100644 --- a/lib/cartodb/controllers/named_maps_admin.js +++ b/lib/cartodb/controllers/named_maps_admin.js @@ -24,7 +24,7 @@ NamedMapsAdminController.prototype.register = function (app) { `${base_url_templated}/`, cors(), userMiddleware(), - localsMiddleware, + localsMiddleware(), credentialsMiddleware(), this.checkContentType('POST', 'POST TEMPLATE'), this.authorizedByAPIKey('create', 'POST TEMPLATE'), @@ -35,7 +35,7 @@ NamedMapsAdminController.prototype.register = function (app) { `${base_url_templated}/:template_id`, cors(), userMiddleware(), - localsMiddleware, + localsMiddleware(), credentialsMiddleware(), this.checkContentType('PUT', 'PUT TEMPLATE'), this.authorizedByAPIKey('update', 'PUT TEMPLATE'), @@ -46,7 +46,7 @@ NamedMapsAdminController.prototype.register = function (app) { `${base_url_templated}/:template_id`, cors(), userMiddleware(), - localsMiddleware, + localsMiddleware(), credentialsMiddleware(), this.authorizedByAPIKey('get', 'GET TEMPLATE'), this.retrieve() @@ -56,7 +56,7 @@ NamedMapsAdminController.prototype.register = function (app) { `${base_url_templated}/:template_id`, cors(), userMiddleware(), - localsMiddleware, + localsMiddleware(), credentialsMiddleware(), this.authorizedByAPIKey('delete', 'DELETE TEMPLATE'), this.destroy() @@ -66,7 +66,7 @@ NamedMapsAdminController.prototype.register = function (app) { `${base_url_templated}/`, cors(), userMiddleware(), - localsMiddleware, + localsMiddleware(), credentialsMiddleware(), this.authorizedByAPIKey('list', 'GET TEMPLATE LIST'), this.list() diff --git a/lib/cartodb/middleware/context/index.js b/lib/cartodb/middleware/context/index.js index 9394cfd0..750986c5 100644 --- a/lib/cartodb/middleware/context/index.js +++ b/lib/cartodb/middleware/context/index.js @@ -7,7 +7,7 @@ const dbConnSetup = require('./db-conn-setup'); module.exports = function prepareContextMiddleware(authApi, pgConnection) { return [ - locals, + locals(), cleanUpQueryParams(), layergroupToken, credentials(), diff --git a/lib/cartodb/middleware/context/locals.js b/lib/cartodb/middleware/context/locals.js index 0fdcce50..f6f70923 100644 --- a/lib/cartodb/middleware/context/locals.js +++ b/lib/cartodb/middleware/context/locals.js @@ -1,6 +1,7 @@ -module.exports = function localsMiddleware(req, res, next) { - // save req.params in res.locals - res.locals = Object.assign(req.params || {}, res.locals); +module.exports = function locals () { + return function localsMiddleware (req, res, next) { + res.locals = Object.assign(req.params || {}, res.locals); - next(); + next(); + }; }; diff --git a/test/unit/cartodb/prepare-context.test.js b/test/unit/cartodb/prepare-context.test.js index 802063eb..2f6d80a3 100644 --- a/test/unit/cartodb/prepare-context.test.js +++ b/test/unit/cartodb/prepare-context.test.js @@ -65,10 +65,11 @@ describe('prepare-context', function() { } it('res.locals are created', function(done) { + const locals = localsMiddleware(); let req = {}; let res = {}; - localsMiddleware(prepareRequest(req), prepareResponse(res), function(err) { + locals(prepareRequest(req), prepareResponse(res), function(err) { if ( err ) { done(err); return; } assert.ok(res.hasOwnProperty('locals'), 'response has locals'); done();