|
|
|
var type_mapping = require('../helper/type_mapping');
|
|
|
|
var sanitizeAll = require('../sanitizer/sanitizeAll');
|
|
|
|
|
|
|
|
// middleware
|
|
|
|
module.exports.middleware = (_api_pelias_config) => {
|
|
|
|
var sanitizers = {
|
|
|
|
singleScalarParameters: require('../sanitizer/_single_scalar_parameters')(),
|
|
|
|
quattroshapes_deprecation: require('../sanitizer/_deprecate_quattroshapes')(),
|
|
|
|
synthesize_analysis: require('../sanitizer/_synthesize_analysis')(),
|
|
|
|
iso2_to_iso3: require('../sanitizer/_iso2_to_iso3')(),
|
|
|
|
city_name_standardizer: require('../sanitizer/_city_name_standardizer')(),
|
|
|
|
size: require('../sanitizer/_size')(/* use defaults*/),
|
|
|
|
layers: require('../sanitizer/_targets')('layers', type_mapping.layer_mapping),
|
|
|
|
sources: require('../sanitizer/_targets')('sources', type_mapping.source_mapping),
|
|
|
|
// depends on the layers and sources sanitizers, must be run after them
|
|
|
|
sources_and_layers: require('../sanitizer/_sources_and_layers')(),
|
|
|
|
private: require('../sanitizer/_flag_bool')('private', false),
|
|
|
|
location_bias: require('../sanitizer/_location_bias')(_api_pelias_config.defaultParameters),
|
|
|
|
geo_search: require('../sanitizer/_geo_search')(),
|
|
|
|
boundary_country: require('../sanitizer/_boundary_country')(),
|
|
|
|
categories: require('../sanitizer/_categories')()
|
|
|
|
};
|
|
|
|
|
|
|
|
return ( req, res, next ) => {
|
|
|
|
sanitizeAll.runAllChecks(req, sanitizers, ( err, clean ) => {
|
|
|
|
if( err ){
|
|
|
|
res.status(400); // 400 Bad Request
|
|
|
|
return next(err);
|
|
|
|
}
|
|
|
|
next();
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
};
|