Browse Source

add layers parameter support to PointInPolygon service request

pull/1002/head
Stephen Hess 7 years ago
parent
commit
5b86fbd7d8
  1. 10
      service/configurations/PointInPolygon.js
  2. 56
      test/unit/service/configurations/PointInPolygon.js

10
service/configurations/PointInPolygon.js

@ -11,6 +11,16 @@ class PointInPolygon extends ServiceConfiguration {
super('pip', o); super('pip', o);
} }
getParameters(req) {
if (_.has(req, 'clean.layers')) {
return {
layers: _.join(req.clean.layers, ',')
};
}
return {};
}
getUrl(req) { getUrl(req) {
// use resolve to eliminate possibility of duplicate /'s in URL // use resolve to eliminate possibility of duplicate /'s in URL
return url.resolve(this.baseUrl, `${req.clean['point.lon']}/${req.clean['point.lat']}`); return url.resolve(this.baseUrl, `${req.clean['point.lon']}/${req.clean['point.lat']}`);

56
test/unit/service/configurations/PointInPolygon.js

@ -53,16 +53,62 @@ module.exports.tests.all = (test, common) => {
}); });
test('getParameters should return an empty object', (t) => { test('getParameters should return an empty object when req is undefined', (t) => {
const configBlob = { const configBlob = {
url: 'http://localhost:1234', url: 'http://localhost:1234'
timeout: 17,
retries: 19
}; };
const pointInPolygon = new PointInPolygon(configBlob); const pointInPolygon = new PointInPolygon(configBlob);
t.deepEquals(pointInPolygon.getParameters(), {}); t.deepEquals(pointInPolygon.getParameters(undefined), {});
t.end();
});
test('getParameters should return an empty object when req.clean is undefined', (t) => {
const configBlob = {
url: 'http://localhost:1234'
};
const pointInPolygon = new PointInPolygon(configBlob);
const req = {};
t.deepEquals(pointInPolygon.getParameters(req), {});
t.end();
});
test('getParameters should return an empty object when req.clean.layers is undefined', (t) => {
const configBlob = {
url: 'http://localhost:1234'
};
const pointInPolygon = new PointInPolygon(configBlob);
const req = {
clean: {}
};
t.deepEquals(pointInPolygon.getParameters(req), {});
t.end();
});
test('getParameters should return object with layers property when req.clean.layers is specified', t => {
const configBlob = {
url: 'http://localhost:1234'
};
const pointInPolygon = new PointInPolygon(configBlob);
const req = {
clean: {
layers: ['layer1', 'layer2']
}
};
t.deepEquals(pointInPolygon.getParameters(req), { layers: 'layer1,layer2'});
t.end(); t.end();
}); });

Loading…
Cancel
Save