Create middleware for layergroup creation

This commit is contained in:
Daniel García Aubert
2017-11-01 19:27:01 +01:00
parent aeb9585708
commit 125587522f
+29 -23
View File
@@ -84,6 +84,7 @@ MapController.prototype.register = function(app) {
this.prepareContext,
prepareJsonTemplateParams,
this.getTemplate.bind(this),
this.createLayergroupFromTemplate.bind(this),
this.jsonp.bind(this),
mapErrorMiddleware({
label: 'NAMED MAP LAYERGROUP'
@@ -96,6 +97,7 @@ MapController.prototype.register = function(app) {
this.prepareContext,
prepareTemplateParams,
this.getTemplate.bind(this),
this.createLayergroupFromTemplate.bind(this),
this.instantiate.bind(this),
mapErrorMiddleware({
label: 'NAMED MAP LAYERGROUP'
@@ -264,7 +266,7 @@ MapController.prototype.getTemplate = function(req, res, next) {
const templateParams = req.body;
const { user } = res.locals;
const mapConfigProvider = res.locals.mapconfigProvider = new NamedMapMapConfigProvider(
const mapconfigProvider = new NamedMapMapConfigProvider(
this.templateMaps,
this.pgConnection,
this.metadataBackend,
@@ -277,13 +279,37 @@ MapController.prototype.getTemplate = function(req, res, next) {
res.locals
);
mapConfigProvider.getMapConfig((err, mapconfig, rendererParams) => {
mapconfigProvider.getMapConfig((err, mapconfig, rendererParams) => {
if (err) {
return next(err);
}
res.locals.mapconfig = mapconfig;
res.locals.rendererParams = rendererParams;
res.locals.mapconfigProvider = mapconfigProvider;
next();
});
};
MapController.prototype.createLayergroupFromTemplate = function(req, res, next) {
const { user, mapconfig, rendererParams } = res.locals;
const mapconfigProvider = new CreateLayergroupMapConfigProvider(mapconfig, user, this.userLimitsApi, rendererParams);
this.mapBackend.createLayergroup(mapconfig, rendererParams, mapconfigProvider, (err, layergroup) => {
if (err) {
return next(err);
}
res.locals.layergroup = layergroup;
// TODO: Do not provide shortcuts
const { mapconfigProvider } = res.locals;
res.locals.analysesResults = mapconfigProvider.analysesResults;
res.locals.template = mapconfigProvider.template;
res.locals.templateName = mapconfigProvider.getTemplateName();
res.locals.context = mapconfigProvider.context;
next();
});
@@ -293,27 +319,7 @@ MapController.prototype.instantiateTemplate = function(req, res, next) {
var self = this;
step(
function createLayergroup() {
const { user, mapconfig, rendererParams } = res.locals;
self.mapBackend.createLayergroup(
mapconfig, rendererParams,
new CreateLayergroupMapConfigProvider(mapconfig, user, self.userLimitsApi, rendererParams),
this
);
},
function afterLayergroupCreate(err, layergroup) {
assert.ifError(err);
res.locals.layergroup = layergroup;
const { mapconfigProvider } = res.locals;
res.locals.analysesResults = mapconfigProvider.analysesResults;
res.locals.template = mapconfigProvider.template;
res.locals.templateName = mapconfigProvider.getTemplateName();
res.locals.context = mapconfigProvider.context;
function afterLayergroupCreate() {
const afterLayergroupCreate = self.afterLayergroupCreateBuilder({
useTemplateHash: true
});