mirror of https://github.com/pelias/api.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
915 B
27 lines
915 B
const _ = require('lodash'); |
|
const Debug = require('../../helper/debug'); |
|
const debugLog = new Debug('controller:predicates:has_results_at_layers'); |
|
const stackTraceLine = require('../../helper/stackTraceLine'); |
|
// returns a function that returns true if any result.layer is in any of the |
|
// supplied layers using array intersection |
|
|
|
// example usage: determining if the response contains only admin results |
|
|
|
module.exports = (layers) => { |
|
return (request, response) => { |
|
const has_results_at_layers = !_.isEmpty( |
|
_.intersection( |
|
// convert layers to an array if it isn't already one |
|
_.castArray(layers), |
|
// pull all the layer properties into an array |
|
_.map(response.data, _.property('layer')) |
|
)); |
|
|
|
debugLog.push(request, () => ({ |
|
reply: {[layers]: has_results_at_layers}, |
|
stack_trace: stackTraceLine() |
|
})); |
|
return has_results_at_layers; |
|
}; |
|
|
|
};
|
|
|