diff --git a/index.js b/index.js index 8b13789..bbffa23 100644 --- a/index.js +++ b/index.js @@ -1 +1,46 @@ +var http = require('http'); +let users = require("./state").users; +let products = require("./state").products; +let server = http.createServer(messageReceived); +server.listen(8080); +function messageReceived(req, res) { +res.writeHead(200, {'Content-Type': 'text/plain'}); +const firstSlash = req.url.split("/")[1]; +const secondSlash= req.url.split("/")[2]; +if(req.method === "GET" && secondTSlash){ +let urlselected = requestSelector(firstTSlash) +let user = urlselected.find(p=>p["id"] == secondSlash); +let usersJSON = JSON.stringify(user); +res.write(usersJSON); + +}else if(req.method === "GET"){ +let urlselected = requestSelector(firstSlash) +let usersJSON = JSON.stringify(urlselected); +res.write(usersJSON); + +}else if(req.method === "POST" && req.url === "/users"){ +let body = []; +req.on('data', (chunk) => { +body.push(chunk); +}).on('end', () => { +body = Buffer.concat(body).toString(); +let user = JSON.parse(body); +users.push(user); +}); +} + +else{ +res.write("Not Found"); +} +res.end(); +} + + +const requestSelector = (urlPath) => { +if(urlPath.toLowerCase()=="users"){ +return users; +}else if (urlPath.toLowerCase()=="products"){ +return products; + } +} \ No newline at end of file diff --git a/state.js b/state.js index ebab277..892d1c3 100644 --- a/state.js +++ b/state.js @@ -1,30 +1,30 @@ exports.users = [ { - "_id": 1, + "id": 1, "name": "Dale Cooper", "occupation": "FBI Agent", "avatar": "https://upload.wikimedia.org/wikipedia/en/5/50/Agentdalecooper.jpg" }, { - "_id": 2, + "id": 2, "name": "Spike Spiegel", "occupation": "Bounty Hunter", "avatar": "http://vignette4.wikia.nocookie.net/deadliestfiction/images/d/de/Spike_Spiegel_by_aleztron.jpg/revision/latest?cb=20130920231337" }, { - "_id": 3, + "id": 3, "name": "Wirt", "occupation": "adventurer", "avatar": "http://66.media.tumblr.com/5ea59634756e3d7c162da2ef80655a39/tumblr_nvasf1WvQ61ufbniio1_400.jpg" }, { - "_id": 4, + "id": 4, "name": "Michael Myers", "occupation": "Loving little brother", "avatar": "http://vignette2.wikia.nocookie.net/villains/images/e/e3/MMH.jpg/revision/latest?cb=20150810215746" }, { - "_id": 5, + "id": 5, "name": "Dana Scully", "occupation": "FBI Agent", "avatar": "https://pbs.twimg.com/profile_images/718881904834056192/WnMTb__R.jpg"