From b0486f9baea85e5b01983222e653524aa56b36fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Fri, 22 Sep 2017 15:44:05 +0200 Subject: [PATCH] Use express router to group enpoints and reuse common middlewares for layergroup controller --- lib/cartodb/controllers/layergroup.js | 70 ++++++++++----------------- lib/cartodb/server.js | 6 ++- 2 files changed, 31 insertions(+), 45 deletions(-) diff --git a/lib/cartodb/controllers/layergroup.js b/lib/cartodb/controllers/layergroup.js index 962f4acb..d7bf927f 100644 --- a/lib/cartodb/controllers/layergroup.js +++ b/lib/cartodb/controllers/layergroup.js @@ -53,53 +53,45 @@ util.inherits(LayergroupController, BaseController); module.exports = LayergroupController; - -LayergroupController.prototype.register = function(app) { - app.get( - app.base_url_mapconfig + '/:token/:z/:x/:y@:scale_factor?x.:format', +LayergroupController.prototype.register = function(router) { + router.use( cors(), - userMiddleware, + userMiddleware + ); + + router.get( + '/:token/:z/:x/:y@:scale_factor?x.:format', this.req2paramsMiddleware, this.tile.bind(this) ); - app.get( - app.base_url_mapconfig + '/:token/:z/:x/:y.:format', - cors(), - userMiddleware, + router.get( + '/:token/:z/:x/:y.:format', this.req2paramsMiddleware, this.tile.bind(this) ); - app.get( - app.base_url_mapconfig + '/:token/:layer/:z/:x/:y.(:format)', - cors(), - userMiddleware, + router.get( + '/:token/:layer/:z/:x/:y.(:format)', this.req2paramsMiddleware, this.layer.bind(this) ); - app.get( - app.base_url_mapconfig + '/:token/:layer/attributes/:fid', - cors(), - userMiddleware, + router.get( + '/:token/:layer/attributes/:fid', this.req2paramsMiddleware, this.attributes.bind(this) ); - app.get( - app.base_url_mapconfig + '/static/center/:token/:z/:lat/:lng/:width/:height.:format', - cors(), - userMiddleware, + router.get( + '/static/center/:token/:z/:lat/:lng/:width/:height.:format', allowQueryParams(['layer']), this.req2paramsMiddleware, this.center.bind(this) ); - app.get( - app.base_url_mapconfig + '/static/bbox/:token/:west,:south,:east,:north/:width/:height.:format', - cors(), - userMiddleware, + router.get( + '/static/bbox/:token/:west,:south,:east,:north/:width/:height.:format', allowQueryParams(['layer']), this.req2paramsMiddleware, this.bbox.bind(this) @@ -121,45 +113,35 @@ LayergroupController.prototype.register = function(app) { 'q' // widgets search ]; - app.get( - app.base_url_mapconfig + '/:token/dataview/:dataviewName', - cors(), - userMiddleware, + router.get( + '/:token/dataview/:dataviewName', allowQueryParams(allowedDataviewQueryParams), this.req2paramsMiddleware, this.dataview.bind(this) ); - app.get( - app.base_url_mapconfig + '/:token/:layer/widget/:dataviewName', - cors(), - userMiddleware, + router.get( + '/:token/:layer/widget/:dataviewName', allowQueryParams(allowedDataviewQueryParams), this.req2paramsMiddleware, this.dataview.bind(this) ); - app.get( - app.base_url_mapconfig + '/:token/dataview/:dataviewName/search', - cors(), - userMiddleware, + router.get( + '/:token/dataview/:dataviewName/search', allowQueryParams(allowedDataviewQueryParams), this.req2paramsMiddleware, this.dataviewSearch.bind(this) ); - app.get( - app.base_url_mapconfig + '/:token/:layer/widget/:dataviewName/search', - cors(), - userMiddleware, + router.get( + '/:token/:layer/widget/:dataviewName/search', allowQueryParams(allowedDataviewQueryParams), this.req2paramsMiddleware, this.dataviewSearch.bind(this) ); - app.get(app.base_url_mapconfig + '/:token/analysis/node/:nodeId', - cors(), - userMiddleware, + router.get('/:token/analysis/node/:nodeId', this.req2paramsMiddleware, this.analysisNodeStatus.bind(this) ); diff --git a/lib/cartodb/server.js b/lib/cartodb/server.js index f3e88107..784d7f6c 100644 --- a/lib/cartodb/server.js +++ b/lib/cartodb/server.js @@ -212,6 +212,8 @@ module.exports = function(serverOptions) { * Routing ******************************************************************************************************************/ + const routerLayergroup = express.Router(); + new controller.Layergroup( authApi, pgConnection, @@ -223,7 +225,9 @@ module.exports = function(serverOptions) { userLimitsApi, layergroupAffectedTablesCache, analysisBackend - ).register(app); + ).register(routerLayergroup); + + app.use(app.base_url_mapconfig, routerLayergroup); new controller.Map( authApi,