Refactor filter application into own model

This also avoids storing an object in the overviews query rewriter
for the bbox filter (a plain data structure is used instead).
This commit is contained in:
Javier Goizueta
2016-05-17 13:55:00 +02:00
parent 9d82e8c27c
commit df63fbbd04
3 changed files with 31 additions and 6 deletions
@@ -1,15 +1,17 @@
var _ = require('underscore');
var TableNameParser = require('./table_name_parser');
// this is meant as a hack for development
var queryBuilder = require('camshaft/lib/filter/query-builder');
var BBoxFilter = require('../models/filter/bbox');
var CamshaftFilter = require('../models/filter/camshaft');
function apply_filters_to_query(query, filters, bbox_filter) {
// TODO: implement filter application here
if ( filters && !_.isEmpty(filters)) {
query = queryBuilder.getSql(query, filters);
var camshaftFilter = new CamshaftFilter(filters)
query = camshaftFilter.sql(query);
}
if ( bbox_filter ) {
query = bbox_filter.sql(query);
var bboxFilter = new BBoxFilter(bbox_filter.options, bbox_filter.params);
query = bboxFilter.sql(query);
}
return query;
}