Skip to content

Commit 7172397

Browse files
authored
Merge pull request #18 from CatalystCode/filter-layer
Add filter for layer
2 parents e6fc2e7 + 37b8468 commit 7172397

File tree

3 files changed

+9
-0
lines changed

3 files changed

+9
-0
lines changed

controllers/features.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ exports.getById = function(req, res) {
2424
let query = {
2525
id: req.params.id.split(','),
2626
filter_namespace: req.query.filter_namespace,
27+
filter_layer: req.query.filter_layer,
2728
include: req.query.include
2829
};
2930

@@ -39,6 +40,7 @@ exports.getByPoint = function(req, res) {
3940
latitude: parseFloat(req.params.latitude),
4041
longitude: parseFloat(req.params.longitude),
4142
filter_namespace: req.query.filter_namespace,
43+
filter_layer: req.query.filter_layer,
4244
include: req.query.include
4345
};
4446

@@ -57,6 +59,7 @@ exports.getByName = function(req, res) {
5759
let query = {
5860
name: req.params.name.split(/,(?=[^ ])/),
5961
filter_namespace: req.query.filter_namespace,
62+
filter_layer: req.query.filter_layer,
6063
include: req.query.include
6164
};
6265

@@ -79,6 +82,7 @@ exports.getByBoundingBox = function(req, res) {
7982
east: parseFloat(req.params.east),
8083
filter_name: req.query.filter_name,
8184
filter_namespace: req.query.filter_namespace,
85+
filter_layer: req.query.filter_layer,
8286
include: req.query.include
8387
};
8488

schema.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ CREATE TABLE features
2626
CREATE INDEX features_hull_index ON features USING gist (hull);
2727
CREATE INDEX features_name_lower_index ON features(lower(name));
2828
CREATE INDEX features_namespace_index ON features(lower(split_part(id, '-', 1)));
29+
CREATE INDEX features_layer_lower_index ON features(lower(layer));
2930

3031
GRANT SELECT, UPDATE, INSERT, DELETE ON features TO frontend;
3132

services/features.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,10 @@ function addQueryPredicates(sql, query) {
135135
sql += ` AND lower(split_part(id, '-', 1)) = lower(${escapeSql(query.filter_namespace)})`;
136136
}
137137

138+
if (query.filter_layer) {
139+
sql += ` AND lower(layer) IN (${query.filter_layer.split(',').map(layer => `lower(${escapeSql(layer)})`).join(',')})`;
140+
}
141+
138142
return sql;
139143
}
140144

0 commit comments

Comments
 (0)