Extract addAnalysesMetadata functionallity to its own middleware

This commit is contained in:
Daniel García Aubert
2017-10-31 18:25:17 +01:00
parent 99fa66c026
commit cdc39c8cae
+29 -7
View File
@@ -184,7 +184,9 @@ MapController.prototype.create = function(req, res, prepareConfigFn, next) {
res.locals.analysesResults = context.analysesResults;
res.locals.layergroup = layergroup;
const afterLayergroupCreate = self.afterLayergroupCreateBuilder();
const afterLayergroupCreate = self.afterLayergroupCreateBuilder({
includeQuery: true
});
afterLayergroupCreate(req, res, this);
},
@@ -195,9 +197,8 @@ MapController.prototype.create = function(req, res, prepareConfigFn, next) {
return next(err);
}
const { layergroup, analysesResults = [] } = res.locals;
const { layergroup } = res.locals;
self.addAnalysesMetadata(res.locals.user, layergroup, analysesResults, true);
addContextMetadata(layergroup, mapConfig.obj(), context);
res.set('X-Layergroup-Id', layergroup.layergroupid);
@@ -298,9 +299,8 @@ MapController.prototype.instantiateTemplate = function(req, res, prepareParamsFn
return next(err);
}
const { layergroup, analysesResults = [] } = res.locals;
const { layergroup } = res.locals;
self.addAnalysesMetadata(cdbuser, layergroup, analysesResults);
addContextMetadata(layergroup, mapConfig.obj(), mapConfigProvider.context);
res.set('X-Layergroup-Id', layergroup.layergroupid);
@@ -319,7 +319,10 @@ MapController.prototype.instantiateTemplate = function(req, res, prepareParamsFn
MapController.prototype.afterLayergroupCreateBuilder = function (options = {}) {
const self = this;
const { useTemplateHash = false } = options;
const {
useTemplateHash = false,
includeQuery = false
} = options;
return function (req, res, callback) {
step(
@@ -363,6 +366,13 @@ MapController.prototype.afterLayergroupCreateBuilder = function (options = {}) {
assert.ifError(err);
self.setDataviewsAndWidgetsUrlsToLayergroupMetadata(req, res, this);
},
function setAnalysesMetadataToLayergroup(err) {
assert.ifError(err);
const setAnalysesMetadataToLayergroup = self.setAnalysesMetadataToLayergroupBuilder(includeQuery);
setAnalysesMetadataToLayergroup(req, res, this);
},
function finish(err) {
callback(err);
}
@@ -510,7 +520,19 @@ MapController.prototype.setDataviewsAndWidgetsUrlsToLayergroupMetadata = functio
this.addDataviewsAndWidgetsUrls(user, layergroup, mapconfig.obj());
callback();
}
};
MapController.prototype.setAnalysesMetadataToLayergroupBuilder = function (includeQuery) {
const self = this;
return function setAnalysesMetadataToLayergroup (req, res, callback) {
const { layergroup, user, analysesResults = [] } = res.locals;
self.addAnalysesMetadata(user, layergroup, analysesResults, includeQuery);
callback();
};
};
function getLastUpdatedTime(analysesResults, lastUpdateTime) {
if (!Array.isArray(analysesResults)) {