70 lines
1.9 KiB
JavaScript
70 lines
1.9 KiB
JavaScript
const { Router: router } = require('express');
|
|
|
|
const NamedMapController = require('./map/named');
|
|
const AdminTemplateController = require('./template/admin');
|
|
const TileTemplateController = require('./template/tile');
|
|
|
|
module.exports = class TemplateRouter {
|
|
constructor ({ collaborators }) {
|
|
const {
|
|
pgConnection,
|
|
templateMaps,
|
|
mapBackend,
|
|
metadataBackend,
|
|
surrogateKeysCache,
|
|
userLimitsApi,
|
|
layergroupAffectedTablesCache,
|
|
mapConfigAdapter,
|
|
statsBackend,
|
|
authApi,
|
|
layergroupMetadata,
|
|
namedMapProviderCache,
|
|
tileBackend,
|
|
} = collaborators;
|
|
|
|
this.namedMapController = new NamedMapController(
|
|
pgConnection,
|
|
templateMaps,
|
|
mapBackend,
|
|
metadataBackend,
|
|
surrogateKeysCache,
|
|
userLimitsApi,
|
|
layergroupAffectedTablesCache,
|
|
mapConfigAdapter,
|
|
statsBackend,
|
|
authApi,
|
|
layergroupMetadata
|
|
);
|
|
|
|
this.tileTemplateController = new TileTemplateController(
|
|
namedMapProviderCache,
|
|
tileBackend,
|
|
surrogateKeysCache,
|
|
pgConnection,
|
|
authApi,
|
|
userLimitsApi
|
|
);
|
|
|
|
this.adminTemplateController = new AdminTemplateController(
|
|
authApi,
|
|
templateMaps,
|
|
userLimitsApi
|
|
);
|
|
}
|
|
|
|
register (apiRouter) {
|
|
const templateRouter = router();
|
|
|
|
this.namedMapController.register(templateRouter);
|
|
this.tileTemplateController.register(templateRouter);
|
|
this.adminTemplateController.register(templateRouter);
|
|
|
|
const paths = [
|
|
'/map/named',
|
|
'/template'
|
|
];
|
|
|
|
apiRouter.use(`(?:${paths.join('|')})`, templateRouter);
|
|
}
|
|
};
|