// validate inputs, convert types and apply defaults // id generally looks like 'geoname:4163334' (type:id) // so, both type and id are required fields. function sanitize( req ){ req.clean = req.clean || {}; var params = req.query; var indeces = require('../query/indeces'); var delim = ':'; // ensure params is a valid object if( Object.prototype.toString.call( params ) !== '[object Object]' ){ params = {}; } var errormessage = function(fieldname, message) { return { 'error': true, 'message': message || ('invalid param \''+ fieldname + '\': text length, must be >0') } }; if(('string' === typeof params.id && !params.id.length) || params.id === undefined){ return errormessage('id'); } if( params && params.id && params.id.length ){ req.clean.ids = []; params.ids = Array.isArray(params.id) ? params.id : [params.id]; // de-dupe params.ids = params.ids.filter(function(item, pos) { return params.ids.indexOf(item) == pos; }); for (var i=0; i