Use express router to group enpoints and reuse common middlewares for layergroup controller

This commit is contained in:
Daniel García Aubert
2017-09-22 15:44:12 +02:00
parent 9bd862ffaf
commit b0486f9bae
2 changed files with 31 additions and 45 deletions
+26 -44
View File
@@ -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)
);
+5 -1
View File
@@ -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,