Datasource query() refactoring.
This commit is contained in:
@@ -148,19 +148,12 @@ function (angular, _, dateMath, utils, metricFunctions) {
|
|||||||
timeseries_data = _.map(timeseries_data, function (timeseries) {
|
timeseries_data = _.map(timeseries_data, function (timeseries) {
|
||||||
|
|
||||||
// Filter only transform functions
|
// Filter only transform functions
|
||||||
var transformFunctions = _.map(metricFunctions.getCategories()['Transform'], 'name');
|
var transformFunctions = bindFunctionDefs(target.functions, 'Transform');
|
||||||
var transFuncDefs = _.filter(target.functions, function(func) {
|
|
||||||
return _.contains(transformFunctions, func.def.name);
|
|
||||||
});
|
|
||||||
var functions = _.map(transFuncDefs, function(func) {
|
|
||||||
var funcInstance = metricFunctions.createFuncInstance(func.def, func.params);
|
|
||||||
return funcInstance.bindFunction(DataProcessingService.metricFunctions);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Metric data processing
|
// Metric data processing
|
||||||
var dp = timeseries.datapoints;
|
var dp = timeseries.datapoints;
|
||||||
for (var i = 0; i < functions.length; i++) {
|
for (var i = 0; i < transformFunctions.length; i++) {
|
||||||
dp = functions[i](dp);
|
dp = transformFunctions[i](dp);
|
||||||
}
|
}
|
||||||
timeseries.datapoints = dp;
|
timeseries.datapoints = dp;
|
||||||
|
|
||||||
@@ -168,25 +161,18 @@ function (angular, _, dateMath, utils, metricFunctions) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Aggregations
|
// Aggregations
|
||||||
var aggregationFunctions = _.map(metricFunctions.getCategories()['Aggregate'], 'name');
|
var aggregationFunctions = bindFunctionDefs(target.functions, 'Aggregate');
|
||||||
var aggFuncDefs = _.filter(target.functions, function(func) {
|
|
||||||
return _.contains(aggregationFunctions, func.def.name);
|
|
||||||
});
|
|
||||||
var functions = _.map(aggFuncDefs, function(func) {
|
|
||||||
var funcInstance = metricFunctions.createFuncInstance(func.def, func.params);
|
|
||||||
return funcInstance.bindFunction(DataProcessingService.metricFunctions);
|
|
||||||
});
|
|
||||||
var dp = _.map(timeseries_data, 'datapoints');
|
var dp = _.map(timeseries_data, 'datapoints');
|
||||||
|
if (aggregationFunctions.length) {
|
||||||
if (functions.length) {
|
for (var i = 0; i < aggregationFunctions.length; i++) {
|
||||||
for (var i = 0; i < functions.length; i++) {
|
dp = aggregationFunctions[i](dp);
|
||||||
dp = functions[i](dp);
|
|
||||||
}
|
}
|
||||||
timeseries_data = {
|
timeseries_data = {
|
||||||
target: 'agg',
|
target: 'agg',
|
||||||
datapoints: dp
|
datapoints: dp
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
return timeseries_data;
|
return timeseries_data;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -257,6 +243,17 @@ function (angular, _, dateMath, utils, metricFunctions) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function bindFunctionDefs(functionDefs, category) {
|
||||||
|
var aggregationFunctions = _.map(metricFunctions.getCategories()[category], 'name');
|
||||||
|
var aggFuncDefs = _.filter(functionDefs, function(func) {
|
||||||
|
return _.contains(aggregationFunctions, func.def.name);
|
||||||
|
});
|
||||||
|
return _.map(aggFuncDefs, function(func) {
|
||||||
|
var funcInstance = metricFunctions.createFuncInstance(func.def, func.params);
|
||||||
|
return funcInstance.bindFunction(DataProcessingService.metricFunctions);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
////////////////
|
////////////////
|
||||||
// Templating //
|
// Templating //
|
||||||
////////////////
|
////////////////
|
||||||
|
|||||||
Reference in New Issue
Block a user