From 6a6ec4300b0cdce9fe20b29496a413f18328bf6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Wed, 1 Aug 2018 16:30:59 +0200 Subject: [PATCH] Extract functions to compose query-rewrite-data --- .../adapter/mapconfig-overviews-adapter.js | 50 ++++++++++++++----- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/lib/cartodb/models/mapconfig/adapter/mapconfig-overviews-adapter.js b/lib/cartodb/models/mapconfig/adapter/mapconfig-overviews-adapter.js index ec44ef0f..6da4a726 100644 --- a/lib/cartodb/models/mapconfig/adapter/mapconfig-overviews-adapter.js +++ b/lib/cartodb/models/mapconfig/adapter/mapconfig-overviews-adapter.js @@ -59,23 +59,15 @@ function augmentLayer(overviewsMetadataBackend, filterStatsBackend, user, layer, var query_rewrite_data = { overviews: metadata }; - var filters, unfiltered_query; if (layer.options.source && analysesResults && !layer.options.sql_wrap) { var sourceId = layer.options.source.id; - var node = _.find(analysesResults, function (a) { return a.rootNode.params.id === sourceId; }); - if (node) { - node = node.rootNode; - filters = node.getFilters(); - var filters_disabler = Object.keys(filters).reduce( - function (disabler, filter_id) { disabler[filter_id] = false; return disabler; }, - {} - ); - unfiltered_query = node.getQuery(filters_disabler); - query_rewrite_data.filters = filters; - query_rewrite_data.unfiltered_query = unfiltered_query; - } + + query_rewrite_data.filters = getFilters(analysesResults, sourceId); + query_rewrite_data.unfiltered_query = getUnfilteredQuery(analysesResults, sourceId); } + var filters = query_rewrite_data.filters; + if (!filters) { if (!_.isEmpty(metadata)) { layer = Object.assign({}, layer); @@ -85,6 +77,8 @@ function augmentLayer(overviewsMetadataBackend, filterStatsBackend, user, layer, return done(null, layer); } + var unfiltered_query = query_rewrite_data.unfiltered_query; + filterStatsBackend.getFilterStats(user, unfiltered_query, filters, function (err, stats) { if (err) { return done(null, layer); @@ -101,3 +95,33 @@ function augmentLayer(overviewsMetadataBackend, filterStatsBackend, user, layer, }); }); } + +function getRootNode (analysesResults, sourceId) { + var node = _.find(analysesResults, function (a) { + return a.rootNode.params.id === sourceId; + }); + + return node ? node.rootNode : undefined; +} + +function getUnfilteredQuery (analysesResults, sourceId) { + var node = getRootNode(analysesResults, sourceId); + + if (node) { + var filters = node.getFilters(); + var filters_disabler = Object.keys(filters).reduce(function (disabler, filter_id) { + disabler[filter_id] = false; + return disabler; + }, {}); + + return node.getQuery(filters_disabler); + } +} + +function getFilters (analysesResults, sourceId) { + var node = getRootNode(analysesResults, sourceId); + + if (node) { + return node.getFilters(); + } +}