The source code for a public API that I run.
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
905 B

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);
});
};