From 99b95cf839c603c88b675f92df6a2d72e7385744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Thu, 28 Dec 2017 13:50:59 +0100 Subject: [PATCH] Move check of default-aggregation to mapconfig model --- .../models/aggregation/aggregation-mapconfig.js | 3 ++- .../models/aggregation/aggregation-query.js | 17 +---------------- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/lib/cartodb/models/aggregation/aggregation-mapconfig.js b/lib/cartodb/models/aggregation/aggregation-mapconfig.js index ef12518e..e08f3024 100644 --- a/lib/cartodb/models/aggregation/aggregation-mapconfig.js +++ b/lib/cartodb/models/aggregation/aggregation-mapconfig.js @@ -82,7 +82,8 @@ module.exports = class AggregationMapConfig extends MapConfig { threshold, placement, columns, - dimensions + dimensions, + isDefaultAggregation: this._isDefaultLayerAggregation(index) }); } diff --git a/lib/cartodb/models/aggregation/aggregation-query.js b/lib/cartodb/models/aggregation/aggregation-query.js index 965d201f..2a09efde 100644 --- a/lib/cartodb/models/aggregation/aggregation-query.js +++ b/lib/cartodb/models/aggregation/aggregation-query.js @@ -15,7 +15,7 @@ const DEFAULT_PLACEMENT = 'point-sample'; */ const templateForOptions = (options) => { let templateFn = defaultAggregationQueryTemplate; - if (!isDefaultAggregation(options)) { + if (!options.isDefaultAggregation) { templateFn = aggregationQueryTemplates[options.placement || DEFAULT_PLACEMENT]; if (!templateFn) { throw new Error("Invalid Aggregation placement: '" + options.placement + "'"); @@ -24,18 +24,6 @@ const templateForOptions = (options) => { return templateFn; }; -const isEmptyParameter = (parameter) => !parameter || Object.keys(parameter).length === 0; - -/** - * When no placement, columns or dimensions are specified in the aggregation - * a special default aggregation is used. - */ -const isDefaultAggregation = (options) => { - return !options || ( - !options.placement && isEmptyParameter(options.columns) && isEmptyParameter(options.dimensions) - ); -}; - /** * Generates an aggregation query given the aggregation options: * - query @@ -59,9 +47,6 @@ const queryForOptions = (options) => templateForOptions(options)({ module.exports = queryForOptions; -// Checks if the aggregation parameters represent the default (full-sample) aggregation -module.exports.isDefaultAggregation = isDefaultAggregation; - const SUPPORTED_AGGREGATE_FUNCTIONS = { 'count': { sql: (column_name, params) => `count(${params.aggregated_column || '*'})`