Merge pull request #248 from CartoDB/196-validate-layergroup-in-named-maps

Basic layergroup validation on named map creation/update
This commit is contained in:
Raul Ochoa
2015-01-26 17:04:48 +01:00
4 changed files with 177 additions and 14 deletions
+31
View File
@@ -106,6 +106,11 @@ o._checkInvalidTemplate = function(template) {
return new Error("Invalid characters in template name '" + tplname + "'");
}
var invalidError = isInvalidLayergroup(template.layergroup);
if (invalidError) {
return invalidError;
}
var placeholders = template.placeholders || {};
var placeholderKeys = Object.keys(placeholders);
@@ -142,6 +147,32 @@ o._checkInvalidTemplate = function(template) {
return false;
};
function isInvalidLayergroup(layergroup) {
if (!layergroup) {
return new Error('Missing layergroup');
}
var layers = layergroup.layers;
if (!_.isArray(layers) || layers.length === 0) {
return new Error('Missing or empty layers array from layergroup config');
}
var invalidLayers = layers
.map(function(layer, layerIndex) {
return layer.options ? null : layerIndex;
})
.filter(function(layerIndex) {
return layerIndex !== null;
});
if (invalidLayers.length) {
return new Error('Missing `options` in layergroup config for layers: ' + invalidLayers.join(', '));
}
return false;
}
function templateDefaults(template) {
var templateAuth = _.defaults({}, template.auth || {}, {
method: 'open'