From 60030784c15dfe931ade08a89bf0873e29b8aa43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Wed, 20 Dec 2017 12:42:29 +0100 Subject: [PATCH] Export supported placements and create static methods to expose them in a fancy way --- .../models/aggregation/aggregation-mapconfig.js | 15 +++++++-------- .../models/aggregation/aggregation-query.js | 2 ++ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/cartodb/models/aggregation/aggregation-mapconfig.js b/lib/cartodb/models/aggregation/aggregation-mapconfig.js index c6dbcad4..93abe6bb 100644 --- a/lib/cartodb/models/aggregation/aggregation-mapconfig.js +++ b/lib/cartodb/models/aggregation/aggregation-mapconfig.js @@ -1,6 +1,5 @@ const MapConfig = require('windshaft').model.MapConfig; const aggregationQuery = require('./aggregation-query'); -const { SUPPORTED_AGGREGATE_FUNCTIONS } = require('./aggregation-query'); const aggregationValidator = require('./aggregation-validator'); const { createPositiveNumberValidator, @@ -9,16 +8,16 @@ const { } = aggregationValidator; module.exports = class AggregationMapConfig extends MapConfig { + static get AGGREGATIONS () { + return aggregationQuery.SUPPORTED_AGGREGATE_FUNCTIONS; + } + static get PLACEMENTS () { - return [ - 'centroid', - 'point-grid', - 'point-sample' - ]; + return aggregationQuery.SUPPORTED_PLACEMENTS; } static get PLACEMENT () { - return AggregationMapConfig.PLACEMENTS[0]; + return AggregationMapConfig.PLACEMENTS.find(placement => placement === 'centroid'); } static get THRESHOLD () { @@ -45,7 +44,7 @@ module.exports = class AggregationMapConfig extends MapConfig { const validate = aggregationValidator(this); const positiveNumberValidator = createPositiveNumberValidator(this); const includesValidPlacementsValidator = createIncludesValueValidator(this, AggregationMapConfig.PLACEMENTS); - const aggregationColumnsValidator = createAggregationColumnsValidator(this, SUPPORTED_AGGREGATE_FUNCTIONS); + const aggregationColumnsValidator = createAggregationColumnsValidator(this, AggregationMapConfig.AGGREGATIONS); validate('resolution', positiveNumberValidator); validate('placement', includesValidPlacementsValidator); diff --git a/lib/cartodb/models/aggregation/aggregation-query.js b/lib/cartodb/models/aggregation/aggregation-query.js index 06858373..d09a9665 100644 --- a/lib/cartodb/models/aggregation/aggregation-query.js +++ b/lib/cartodb/models/aggregation/aggregation-query.js @@ -190,3 +190,5 @@ const aggregationQueryTemplates = { ON (_cdb_clusters.cartodb_id = _cdb_query.cartodb_id) ` }; + +module.exports.SUPPORTED_PLACEMENTS = Object.keys(aggregationQueryTemplates);