Extract functions to compose query-rewrite-data

This commit is contained in:
Daniel García Aubert
2018-08-01 16:30:59 +02:00
parent d25740ed51
commit 6a6ec4300b
@@ -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();
}
}