Merge pull request #788 from CartoDB/786-number-categories-param

Add a "category" query param to define the number of categories to be ranked for aggregation dataviews
This commit is contained in:
Daniel
2017-11-07 17:11:25 +01:00
committed by GitHub
6 changed files with 113 additions and 6 deletions
+2 -2
View File
@@ -24,7 +24,7 @@ module.exports = DataviewBackend;
DataviewBackend.prototype.getDataview = function (mapConfigProvider, user, params, callback) {
var dataviewName = params.dataviewName;
var dataviewName = params.dataviewName;
step(
function getMapConfig() {
mapConfigProvider.getMapConfig(this);
@@ -94,7 +94,7 @@ function getQueryRewriteData(mapConfig, dataviewDefinition, params) {
}
function getOverrideParams(params, ownFilter) {
var overrideParams = _.reduce(_.pick(params, 'start', 'end', 'bins', 'offset'),
var overrideParams = _.reduce(_.pick(params, 'start', 'end', 'bins', 'offset', 'categories'),
function castNumbers(overrides, val, k) {
if (!Number.isFinite(+val)) {
throw new Error('Invalid number format for parameter \'' + k + '\'');
+2 -1
View File
@@ -109,7 +109,8 @@ LayergroupController.prototype.register = function(app) {
'bins', // number
'aggregation', //string
'offset', // number
'q' // widgets search
'q', // widgets search
'categories', // number
];
app.get(
+5 -1
View File
@@ -245,6 +245,10 @@ module.exports = class Aggregation extends BaseDataview {
return null;
}
const limit = Number.isFinite(override.categories) && override.categories > 0 ?
override.categories :
CATEGORIES_LIMIT;
const aggregationSql = aggregationDataviewQueryTpl({
override: override,
query: this.query,
@@ -256,7 +260,7 @@ module.exports = class Aggregation extends BaseDataview {
aggregationColumn: this.aggregationColumn || 1
}),
isFloatColumn: this._isFloatColumn,
limit: CATEGORIES_LIMIT
limit
});
debug(aggregationSql);