var MAX_COUNT = 64; function generateName(req, res, set, cat, id, format, gender, count) { var key = this.key; var agent = req.headers['user-agent']; if(typeof(cat) != 'undefined') { id = cat + '/' + id; } var gen = set.getGenerator(req.params.id); if(typeof(gender) === 'undefined' && gen != null) { gender = gen.genders[0]; } if(typeof(count) === 'undefined') { count = 1; } if(count > MAX_COUNT) { count = MAX_COUNT; } if(agent.indexOf('curl/') != -1 || req.query.hasOwnProperty('t')) { if(gen != null) { var results = ""; for(var i = 0; i < count; ++i) { results += gen.generate(format, gender) + '\n'; } res.header("Content-Type", "text/plain; charset=utf-8"); res.end(results); } else { res.header("Content-Type", "text/plain; charset=utf-8"); res.end("ERROR: GENERATOR NOT FOUND"); } } else { if(gen != null) { var results = []; for(var i = 0; i < count; ++i) { results.push(gen.generate(format, gender)); } res.header("Content-Type", "application/json; charset=utf-8"); res.end(JSON.stringify(results)); } else { res.header("Content-Type", "application/json; charset=utf-8"); res.end(JSON.stringify(null)); } } } module.exports = function(set, app) { var min = 1; var max = 32; app.get('/g/:id', function (req, res) { generateName(req, res, set, undefined, req.params.id); }); app.get('/g/:cat/:id', function (req, res) { generateName(req, res, set, req.params.cat, req.params.id); }); app.get('/g/:cat/:id/:format', function (req, res) { generateName(req, res, set, req.params.cat, req.params.id, req.params.format); }); app.get('/g/:cat/:id/:format/:gender', function (req, res) { generateName(req, res, set, req.params.cat, req.params.id, req.params.format, req.params.gender); }); app.get('/g/:cat/:id/:format/:gender/:count', function (req, res) { generateName(req, res, set, req.params.cat, req.params.id, req.params.format, req.params.gender, req.params.count); }); }