Validate dataviews format before instantiating

This commit is contained in:
Raul Ochoa
2016-04-21 16:16:00 +02:00
parent 83eceb349c
commit bc845b2e8d
@@ -79,6 +79,11 @@ AnalysisMapConfigAdapter.prototype.getLayers = function(analysisConfiguration, r
debug(dataviewsFilters);
var dataviews = requestMapConfig.dataviews || {};
var errors = getDataviewsErrors(dataviews);
if (errors.length > 0) {
return callback(errors);
}
var dataviewsFiltersBySourceId = Object.keys(dataviewsFilters).reduce(function(bySourceId, dataviewName) {
var dataview = dataviews[dataviewName];
if (dataview) {
@@ -140,3 +145,20 @@ AnalysisMapConfigAdapter.prototype.getLayers = function(analysisConfiguration, r
return callback(null, requestMapConfig, analysesResults);
});
};
function getDataviewsErrors(dataviews) {
var errors = [];
Object.keys(dataviews).forEach(function(dataviewName) {
var dataview = dataviews[dataviewName];
if (!dataview.hasOwnProperty('source') || !dataview.source.id) {
errors.push(new Error('Dataview "' + dataviewName + '" is missing `source.id` attribute'));
}
if (!dataview.type) {
errors.push(new Error('Dataview "' + dataviewName + '" is missing `type` attribute'));
}
});
return errors;
}