Extract functions to compose query-rewrite-data
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user