Zoeyport 2018

node v8.17.0
version: 0.1.0
endpointsharetweet
const casual = require('casual') const faker = require('faker') const _ = require('lodash') const endpoint = require("@runkit/runkit/json-endpoint/1.0.0") const range = (from, to) => to ? Array.from({length: Math.round(to) - Math.round(from)}, (__, i) => i + Math.round(from)) : Array.from({length: Math.round(from)}, (__,i) => i) const cities = ['Zoeyport', 'Royton', 'West Brisaburgh', 'West Elyssamouth', 'Letaview', 'Cleoland', 'Theresaland'] const occupations = [ 'strategist', 'coordinator', 'engineer', 'supervisor', 'planner', 'designer', 'producer', 'specialist' ] const people = range(2500).map(i => { let name = casual.full_name let company = faker.company.companyName(0) return { name, age: _.random(20, 70), occupation: _.sample(occupations), city: _.sample(cities), phone: faker.phone.phoneNumberFormat(1), email: name.toLowerCase().split(' ').join('.') + '@' + company.toLowerCase().replace(/\s*/g,'') + '.' + faker.internet.domainSuffix(), company } }) endpoint(module.exports, incoming => { const query = incoming.query || {} let data = people // User wants all people if (query.all) return data // Query filtering if (query.city) data = data.filter(p => p.city === query.city) if (query.occupation) data = data.filter(p => p.occupation === query.occupation) if (query.younger && parseInt(query.younger) == query.younger) { data = data.filter(p => p.age < parseInt(query.younger)) } if (query.older && parseInt(query.older) == query.older) { data = data.filter(p => p.age > parseInt(query.older)) } // Pagination and response if (query.page) return data.slice(query.page*50, (query.page + 1)*50) else return data.slice(0,50) })
Loading…

no comments

    sign in to comment