Draft: be able to inject middlewares from configuration
This commit is contained in:
parent
b881bec668
commit
9cfaf6eefc
@ -22,12 +22,22 @@ var config = {
|
|||||||
'/api/v1',
|
'/api/v1',
|
||||||
'/user/:user/api/v1',
|
'/user/:user/api/v1',
|
||||||
],
|
],
|
||||||
|
// Attach middlewares at the begining of the req/res cycle
|
||||||
|
// to perform custom operations.
|
||||||
|
middlewares: [
|
||||||
|
function noop () {
|
||||||
|
return function noopMiddleware (req, res, next) {
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
// Base url for the Detached Maps API
|
// Base url for the Detached Maps API
|
||||||
// "/api/v1/map" is the new API,
|
// "/api/v1/map" is the new API,
|
||||||
map: {
|
map: {
|
||||||
paths: [
|
paths: [
|
||||||
'/map',
|
'/map',
|
||||||
]
|
],
|
||||||
|
middlewares: []
|
||||||
},
|
},
|
||||||
// Base url for the Templated Maps API
|
// Base url for the Templated Maps API
|
||||||
// "/api/v1/map/named" is the new API,
|
// "/api/v1/map/named" is the new API,
|
||||||
|
@ -22,12 +22,22 @@ var config = {
|
|||||||
'/api/v1',
|
'/api/v1',
|
||||||
'/user/:user/api/v1',
|
'/user/:user/api/v1',
|
||||||
],
|
],
|
||||||
|
// Attach middlewares at the begining of the req/res cycle
|
||||||
|
// to perform custom operations.
|
||||||
|
middlewares: [
|
||||||
|
function noop () {
|
||||||
|
return function noopMiddleware (req, res, next) {
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
// Base url for the Detached Maps API
|
// Base url for the Detached Maps API
|
||||||
// "/api/v1/map" is the new API,
|
// "/api/v1/map" is the new API,
|
||||||
map: {
|
map: {
|
||||||
paths: [
|
paths: [
|
||||||
'/map',
|
'/map',
|
||||||
]
|
],
|
||||||
|
middlewares: []
|
||||||
},
|
},
|
||||||
// Base url for the Templated Maps API
|
// Base url for the Templated Maps API
|
||||||
// "/api/v1/map/named" is the new API,
|
// "/api/v1/map/named" is the new API,
|
||||||
|
@ -22,12 +22,22 @@ var config = {
|
|||||||
'/api/v1',
|
'/api/v1',
|
||||||
'/user/:user/api/v1',
|
'/user/:user/api/v1',
|
||||||
],
|
],
|
||||||
|
// Attach middlewares at the begining of the req/res cycle
|
||||||
|
// to perform custom operations.
|
||||||
|
middlewares: [
|
||||||
|
function noop () {
|
||||||
|
return function noopMiddleware (req, res, next) {
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
// Base url for the Detached Maps API
|
// Base url for the Detached Maps API
|
||||||
// "/api/v1/map" is the new API,
|
// "/api/v1/map" is the new API,
|
||||||
map: {
|
map: {
|
||||||
paths: [
|
paths: [
|
||||||
'/map',
|
'/map',
|
||||||
]
|
],
|
||||||
|
middlewares: []
|
||||||
},
|
},
|
||||||
// Base url for the Templated Maps API
|
// Base url for the Templated Maps API
|
||||||
// "/api/v1/map/named" is the new API,
|
// "/api/v1/map/named" is the new API,
|
||||||
|
@ -204,8 +204,10 @@ module.exports = class ApiRouter {
|
|||||||
|
|
||||||
Object.keys(this.serverOptions.routes).forEach(apiVersion => {
|
Object.keys(this.serverOptions.routes).forEach(apiVersion => {
|
||||||
const routes = this.serverOptions.routes[apiVersion];
|
const routes = this.serverOptions.routes[apiVersion];
|
||||||
|
|
||||||
const apiRouter = router({ mergeParams: true });
|
const apiRouter = router({ mergeParams: true });
|
||||||
|
const apiMiddlewares = routes.middlewares || [];
|
||||||
|
|
||||||
|
apiMiddlewares.forEach(middleware => apiRouter.use(middleware()));
|
||||||
|
|
||||||
apiRouter.use(logger(this.serverOptions));
|
apiRouter.use(logger(this.serverOptions));
|
||||||
apiRouter.use(initializeStatusCode());
|
apiRouter.use(initializeStatusCode());
|
||||||
@ -219,8 +221,8 @@ module.exports = class ApiRouter {
|
|||||||
apiRouter.use(cors());
|
apiRouter.use(cors());
|
||||||
apiRouter.use(user());
|
apiRouter.use(user());
|
||||||
|
|
||||||
this.templateRouter.register(apiRouter, routes.template.paths);
|
this.templateRouter.register(apiRouter, routes.template.paths, routes.template.middlewares);
|
||||||
this.mapRouter.register(apiRouter, routes.map.paths);
|
this.mapRouter.register(apiRouter, routes.map.paths, routes.map.middlewares);
|
||||||
|
|
||||||
apiRouter.use(sendResponse());
|
apiRouter.use(sendResponse());
|
||||||
apiRouter.use(syntaxError());
|
apiRouter.use(syntaxError());
|
||||||
|
@ -126,9 +126,11 @@ module.exports = class MapRouter {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
register (apiRouter, mapPaths) {
|
register (apiRouter, mapPaths, mapMiddlewares = []) {
|
||||||
const mapRouter = router({ mergeParams: true });
|
const mapRouter = router({ mergeParams: true });
|
||||||
|
|
||||||
|
mapMiddlewares.forEach(middleware => mapRouter.use(middleware()));
|
||||||
|
|
||||||
this.analysisLayergroupController.register(mapRouter);
|
this.analysisLayergroupController.register(mapRouter);
|
||||||
this.attributesLayergroupController.register(mapRouter);
|
this.attributesLayergroupController.register(mapRouter);
|
||||||
this.dataviewLayergroupController.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 });
|
const templateRouter = router({ mergeParams: true });
|
||||||
|
|
||||||
|
templateMiddlewares.forEach(middleware => templateRouter.use(middleware()));
|
||||||
|
|
||||||
this.namedMapController.register(templateRouter);
|
this.namedMapController.register(templateRouter);
|
||||||
this.tileTemplateController.register(templateRouter);
|
this.tileTemplateController.register(templateRouter);
|
||||||
this.adminTemplateController.register(templateRouter);
|
this.adminTemplateController.register(templateRouter);
|
||||||
|
Loading…
Reference in New Issue
Block a user