Extract hash template for layergroup id and dataviews/widgets to a middlewares

This commit is contained in:
Daniel García Aubert
2017-10-31 18:06:14 +01:00
parent d85a5d83b7
commit 99fa66c026
+37 -8
View File
@@ -197,7 +197,6 @@ MapController.prototype.create = function(req, res, prepareConfigFn, next) {
const { layergroup, analysesResults = [] } = res.locals;
self.addDataviewsAndWidgetsUrls(res.locals.user, layergroup, mapConfig.obj());
self.addAnalysesMetadata(res.locals.user, layergroup, analysesResults, true);
addContextMetadata(layergroup, mapConfig.obj(), context);
res.set('X-Layergroup-Id', layergroup.layergroupid);
@@ -285,8 +284,11 @@ MapController.prototype.instantiateTemplate = function(req, res, prepareParamsFn
res.locals.mapconfig = mapConfig;
res.locals.analysesResults = mapConfigProvider.analysesResults;
res.locals.layergroup = layergroup;
res.locals.template = mapConfigProvider.template;
const afterLayergroupCreate = self.afterLayergroupCreateBuilder();
const afterLayergroupCreate = self.afterLayergroupCreateBuilder({
useTemplateHash: true
});
afterLayergroupCreate(req, res, this);
},
@@ -298,10 +300,6 @@ MapController.prototype.instantiateTemplate = function(req, res, prepareParamsFn
const { layergroup, analysesResults = [] } = res.locals;
var templateHash = self.templateMaps.fingerPrint(mapConfigProvider.template).substring(0, 8);
layergroup.layergroupid = cdbuser + '@' + templateHash + '@' + layergroup.layergroupid;
self.addDataviewsAndWidgetsUrls(cdbuser, layergroup, mapConfig.obj());
self.addAnalysesMetadata(cdbuser, layergroup, analysesResults);
addContextMetadata(layergroup, mapConfig.obj(), mapConfigProvider.context);
@@ -319,8 +317,9 @@ MapController.prototype.instantiateTemplate = function(req, res, prepareParamsFn
);
};
MapController.prototype.afterLayergroupCreateBuilder = function () {
var self = this;
MapController.prototype.afterLayergroupCreateBuilder = function (options = {}) {
const self = this;
const { useTemplateHash = false } = options;
return function (req, res, callback) {
step(
@@ -351,6 +350,19 @@ MapController.prototype.afterLayergroupCreateBuilder = function () {
assert.ifError(err);
self.setLayerStats(req, res, this);
},
function augmentLayergroupIdWithTemplateHash (err) {
assert.ifError(err);
if (!useTemplateHash) {
return null;
}
self.augmentLayergroupIdWithTemplateHash(req, res, this);
},
function (err) {
assert.ifError(err);
self.setDataviewsAndWidgetsUrlsToLayergroupMetadata(req, res, this);
},
function finish(err) {
callback(err);
}
@@ -483,6 +495,23 @@ MapController.prototype.setLayerStats = function (req, res, callback) {
});
};
MapController.prototype.augmentLayergroupIdWithTemplateHash = function (req, res, callback) {
const { layergroup, user, template } = res.locals;
var templateHash = this.templateMaps.fingerPrint(template).substring(0, 8);
layergroup.layergroupid = `${user}@${templateHash}@${layergroup.layergroupid}`;
callback();
};
MapController.prototype.setDataviewsAndWidgetsUrlsToLayergroupMetadata = function (req, res, callback) {
const { layergroup, user, mapconfig } = res.locals;
this.addDataviewsAndWidgetsUrls(user, layergroup, mapconfig.obj());
callback();
}
function getLastUpdatedTime(analysesResults, lastUpdateTime) {
if (!Array.isArray(analysesResults)) {
return lastUpdateTime;