diff --git a/lib/cartodb/controllers/analyses.js b/lib/cartodb/controllers/analyses.js index 7b140e8f..7aabc11b 100644 --- a/lib/cartodb/controllers/analyses.js +++ b/lib/cartodb/controllers/analyses.js @@ -20,14 +20,11 @@ util.inherits(AnalysesController, BaseController); module.exports = AnalysesController; -AnalysesController.prototype.register = function(router) { - router.use( +AnalysesController.prototype.register = function(app) { + app.get( + app.base_url_mapconfig + '/analyses/catalog', cors(), - userMiddleware - ); - - router.get( - '/analyses/catalog', + userMiddleware, this.prepareContext, this.catalog.bind(this) ); diff --git a/lib/cartodb/controllers/layergroup.js b/lib/cartodb/controllers/layergroup.js index 9b0c1b51..3a63b0c9 100644 --- a/lib/cartodb/controllers/layergroup.js +++ b/lib/cartodb/controllers/layergroup.js @@ -51,46 +51,53 @@ util.inherits(LayergroupController, BaseController); module.exports = LayergroupController; -LayergroupController.prototype.register = function(router) { - router.use( +LayergroupController.prototype.register = function(app) { + app.get( + app.base_url_mapconfig + '/:token/:z/:x/:y@:scale_factor?x.:format', cors(), - userMiddleware - ); - - router.get( - '/:token/:z/:x/:y@:scale_factor?x.:format', + userMiddleware, this.prepareContext, this.tile.bind(this) ); - router.get( - '/:token/:z/:x/:y.:format', + app.get( + app.base_url_mapconfig + '/:token/:z/:x/:y.:format', + cors(), + userMiddleware, this.prepareContext, this.tile.bind(this) ); - router.get( - '/:token/:layer/:z/:x/:y.(:format)', + app.get( + app.base_url_mapconfig + '/:token/:layer/:z/:x/:y.(:format)', + cors(), + userMiddleware, validateLayerRouteMiddleware, this.prepareContext, this.layer.bind(this) ); - router.get( - '/:token/:layer/attributes/:fid', + app.get( + app.base_url_mapconfig + '/:token/:layer/attributes/:fid', + cors(), + userMiddleware, this.prepareContext, this.attributes.bind(this) ); - router.get( - '/static/center/:token/:z/:lat/:lng/:width/:height.:format', + app.get( + app.base_url_mapconfig + '/static/center/:token/:z/:lat/:lng/:width/:height.:format', + cors(), + userMiddleware, allowQueryParams(['layer']), this.prepareContext, this.center.bind(this) ); - router.get( - '/static/bbox/:token/:west,:south,:east,:north/:width/:height.:format', + app.get( + app.base_url_mapconfig + '/static/bbox/:token/:west,:south,:east,:north/:width/:height.:format', + cors(), + userMiddleware, allowQueryParams(['layer']), this.prepareContext, this.bbox.bind(this) @@ -112,35 +119,46 @@ LayergroupController.prototype.register = function(router) { 'q' // widgets search ]; - router.get( - '/:token/dataview/:dataviewName', + app.get( + app.base_url_mapconfig + '/:token/dataview/:dataviewName', + cors(), + userMiddleware, allowQueryParams(allowedDataviewQueryParams), this.prepareContext, this.dataview.bind(this) ); - router.get( - '/:token/:layer/widget/:dataviewName', + app.get( + app.base_url_mapconfig + '/:token/:layer/widget/:dataviewName', + cors(), + userMiddleware, allowQueryParams(allowedDataviewQueryParams), this.prepareContext, this.dataview.bind(this) ); - router.get( - '/:token/dataview/:dataviewName/search', + app.get( + app.base_url_mapconfig + '/:token/dataview/:dataviewName/search', + cors(), + userMiddleware, allowQueryParams(allowedDataviewQueryParams), this.prepareContext, this.dataviewSearch.bind(this) ); - router.get( - '/:token/:layer/widget/:dataviewName/search', + app.get( + app.base_url_mapconfig + '/:token/:layer/widget/:dataviewName/search', + cors(), + userMiddleware, allowQueryParams(allowedDataviewQueryParams), this.prepareContext, this.dataviewSearch.bind(this) ); - router.get('/:token/analysis/node/:nodeId', + app.get( + app.base_url_mapconfig + '/:token/analysis/node/:nodeId', + cors(), + userMiddleware, this.prepareContext, this.analysisNodeStatus.bind(this) ); diff --git a/lib/cartodb/controllers/named_maps_admin.js b/lib/cartodb/controllers/named_maps_admin.js index f9e68184..ae57ada3 100644 --- a/lib/cartodb/controllers/named_maps_admin.js +++ b/lib/cartodb/controllers/named_maps_admin.js @@ -26,19 +26,46 @@ util.inherits(NamedMapsAdminController, BaseController); module.exports = NamedMapsAdminController; -NamedMapsAdminController.prototype.register = function (router) { - router.options('/:template_id', cors('Content-Type')); - - router.use( +NamedMapsAdminController.prototype.register = function (app) { + app.post( + app.base_url_templated + '/', cors(), - userMiddleware + userMiddleware, + this.create.bind(this) ); - router.post('/', this.create.bind(this)); - router.put('/:template_id', this.update.bind(this)); - router.get('/:template_id', this.retrieve.bind(this)); - router.delete('/:template_id', this.destroy.bind(this)); - router.get('/', this.list.bind(this)); + app.put( + app.base_url_templated + '/:template_id', + cors(), + userMiddleware, + this.update.bind(this) + ); + + app.get( + app.base_url_templated + '/:template_id', + cors(), + userMiddleware, + this.retrieve.bind(this) + ); + + app.delete( + app.base_url_templated + '/:template_id', + cors(), + userMiddleware, + this.destroy.bind(this) + ); + + app.get( + app.base_url_templated + '/', + cors(), + userMiddleware, + this.list.bind(this) + ); + + app.options( + app.base_url_templated + '/:template_id', + cors('Content-Type') + ); }; NamedMapsAdminController.prototype.create = function(req, res, next) { diff --git a/lib/cartodb/middleware/context/db-conn-setup.js b/lib/cartodb/middleware/context/db-conn-setup.js index a39466fe..293ad586 100644 --- a/lib/cartodb/middleware/context/db-conn-setup.js +++ b/lib/cartodb/middleware/context/db-conn-setup.js @@ -10,7 +10,7 @@ module.exports = function dbConnSetupMiddleware(pgConnection) { err.http_status = 404; } req.profiler.done('req2params'); - return next(err, req); + return next(err); } // Add default database connection parameters @@ -25,7 +25,7 @@ module.exports = function dbConnSetupMiddleware(pgConnection) { req.profiler.done('req2params'); - next(null, req); + next(null); }); }; }; diff --git a/lib/cartodb/server.js b/lib/cartodb/server.js index ffd7efda..5f47b99f 100644 --- a/lib/cartodb/server.js +++ b/lib/cartodb/server.js @@ -219,8 +219,6 @@ module.exports = function(serverOptions) { * Routing ******************************************************************************************************************/ - const routerLayergroup = express.Router(); - new controller.Layergroup( prepareContext, pgConnection, @@ -232,9 +230,7 @@ module.exports = function(serverOptions) { userLimitsApi, layergroupAffectedTablesCache, analysisBackend - ).register(routerLayergroup); - - app.use(app.base_url_mapconfig, routerLayergroup); + ).register(app); new controller.Map( prepareContext, @@ -259,13 +255,9 @@ module.exports = function(serverOptions) { metadataBackend ).register(app); - const namedMapsAdminRouter = express.Router(); - new controller.NamedMapsAdmin(authApi, templateMaps).register(namedMapsAdminRouter); - app.use(app.base_url_templated, namedMapsAdminRouter); + new controller.NamedMapsAdmin(authApi, templateMaps).register(app); - const analysisRouter = express.Router(); - new controller.Analyses(prepareContext).register(analysisRouter); - app.use(app.base_url_mapconfig, analysisRouter); + new controller.Analyses(prepareContext).register(app); new controller.ServerInfo(versions).register(app); diff --git a/test/unit/cartodb/prepare-context.test.js b/test/unit/cartodb/prepare-context.test.js index a30f7245..97893291 100644 --- a/test/unit/cartodb/prepare-context.test.js +++ b/test/unit/cartodb/prepare-context.test.js @@ -129,8 +129,7 @@ describe('prepare-context', function() { res = {}; - dbConnSetup(prepareRequest(req), prepareResponse(res), function(err) { - if ( err ) { done(err); return; } + dbConnSetup(prepareRequest(req), prepareResponse(res), function() { // wrong key resets params to no user assert.ok(res.locals.dbuser === test_pubuser, 'could inject dbuser ('+res.locals.dbuser+')'); done();