var bjcp = require('./bjcp.json'); var check = function(value, filter){ if(value == undefined){ return false; }else if(typeof(value) == 'string'){ return filter.test(value); } else if(value instanceof Object){ var passes = false; for(var i in value){ passes = passes || check(value[i], filter); } return passes; } return true; }; module.exports = function(server){ server.get('/bjcp/', function(req, res){ var filter = req.params || {}; for(var key in filter){ filter[key] = new RegExp(filter[key], 'ig'); } if(filter == {}){ res.json(bjcp); return; } var results = []; for(var i in bjcp){ var passes = true; for(var key in filter){ passes = passes && check(bjcp[i][key], filter[key]); if(!passes){ break; } } if(passes){ results.push(bjcp[i]); } } res.json(results); }); };