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.

47 lines
1000 B

10 years ago
var service = { mget: require('../service/mget') };
function setup( backend ){
// allow overriding of dependencies
backend = backend || require('../src/backend');
9 years ago
function controller( req, res, next ){
// do not run controller when a request
// validation error has occurred.
if( req.errors && req.errors.length ){
return next();
}
10 years ago
var query = req.clean.ids.map( function(id) {
return {
_index: 'pelias',
/*
* some gids aren't resolvable to a single type (ex: osmnode and osmway
* both have source osm and layer venue), so expect an array of
* possible values. */
_type: id.types,
_id: id.id
};
});
service.mget( backend, query, function( err, docs ) {
9 years ago
// error handler
if( err ){
req.errors.push( err );
9 years ago
}
// set response data
9 years ago
else {
res.data = docs;
}
next();
});
}
return controller;
}
module.exports = setup;