Draft: be able to inject middlewares from configuration
This commit is contained in:
@@ -204,8 +204,10 @@ module.exports = class ApiRouter {
|
||||
|
||||
Object.keys(this.serverOptions.routes).forEach(apiVersion => {
|
||||
const routes = this.serverOptions.routes[apiVersion];
|
||||
|
||||
const apiRouter = router({ mergeParams: true });
|
||||
const apiMiddlewares = routes.middlewares || [];
|
||||
|
||||
apiMiddlewares.forEach(middleware => apiRouter.use(middleware()));
|
||||
|
||||
apiRouter.use(logger(this.serverOptions));
|
||||
apiRouter.use(initializeStatusCode());
|
||||
@@ -219,8 +221,8 @@ module.exports = class ApiRouter {
|
||||
apiRouter.use(cors());
|
||||
apiRouter.use(user());
|
||||
|
||||
this.templateRouter.register(apiRouter, routes.template.paths);
|
||||
this.mapRouter.register(apiRouter, routes.map.paths);
|
||||
this.templateRouter.register(apiRouter, routes.template.paths, routes.template.middlewares);
|
||||
this.mapRouter.register(apiRouter, routes.map.paths, routes.map.middlewares);
|
||||
|
||||
apiRouter.use(sendResponse());
|
||||
apiRouter.use(syntaxError());
|
||||
|
||||
@@ -126,9 +126,11 @@ module.exports = class MapRouter {
|
||||
);
|
||||
}
|
||||
|
||||
register (apiRouter, mapPaths) {
|
||||
register (apiRouter, mapPaths, mapMiddlewares = []) {
|
||||
const mapRouter = router({ mergeParams: true });
|
||||
|
||||
mapMiddlewares.forEach(middleware => mapRouter.use(middleware()));
|
||||
|
||||
this.analysisLayergroupController.register(mapRouter);
|
||||
this.attributesLayergroupController.register(mapRouter);
|
||||
this.dataviewLayergroupController.register(mapRouter);
|
||||
|
||||
@@ -54,9 +54,11 @@ module.exports = class TemplateRouter {
|
||||
);
|
||||
}
|
||||
|
||||
register (apiRouter, templatePaths) {
|
||||
register (apiRouter, templatePaths, templateMiddlewares = []) {
|
||||
const templateRouter = router({ mergeParams: true });
|
||||
|
||||
templateMiddlewares.forEach(middleware => templateRouter.use(middleware()));
|
||||
|
||||
this.namedMapController.register(templateRouter);
|
||||
this.tileTemplateController.register(templateRouter);
|
||||
this.adminTemplateController.register(templateRouter);
|
||||
|
||||
Reference in New Issue
Block a user