diff --git a/lib/cartodb/models/dataview/histogram.js b/lib/cartodb/models/dataview/histogram.js index 461f0528..e4179df6 100644 --- a/lib/cartodb/models/dataview/histogram.js +++ b/lib/cartodb/models/dataview/histogram.js @@ -2,32 +2,35 @@ const debug = require('debug')('windshaft:dataview:histogram'); const NumericHistogram = require('./numeric-histogram'); const DateHistogram = require('./date-histogram'); -const TYPE = 'histogram'; const DATE_HISTOGRAM = 'DateHistogram'; const NUMERIC_HISTOGRAM = 'NumericHistogram'; module.exports = class Histogram { - constructor (query, options = {}, queries) { + constructor (query, options, queries) { this.query = query; - this.options = options; + this.options = options ||{}; this.queries = queries; this.dataview = this._getHistogramImplemetation(); } _getHistogramImplemetation (override) { + let implementation = null; + switch (this._getHistogramSubtype(override)) { case DATE_HISTOGRAM: - debug('Delegating to DateHistogram with options: %j and overriding: %j', this.options, override) - return new DateHistogram(this.query, this.options, this.queries); + debug('Delegating to DateHistogram with options: %j and overriding: %j', this.options, override); + implementation = new DateHistogram(this.query, this.options, this.queries); break; case NUMERIC_HISTOGRAM: - debug('Delegating to NumericHistogram with options: %j and overriding: %j', this.options, override) - return new NumericHistogram(this.query, this.options, this.queries); + debug('Delegating to NumericHistogram with options: %j and overriding: %j', this.options, override); + implementation = new NumericHistogram(this.query, this.options, this.queries); break; default: throw new Error('Unsupported Histogram type'); } + + return implementation; } _getHistogramSubtype (override = {}) {