diff --git a/index.js b/index.js index 8b13789..0a819c0 100644 --- a/index.js +++ b/index.js @@ -1 +1,57 @@ +var http = require('http'); +let state = require('./state'); +let users = state.users; +let products = state.products; + +let server = http.createServer(messageReceived); +server.listen(8080); + +function messageReceived(req, res) { + res.writeHead(200, {'Content-Type': 'text/plain'}); + if(req.method === "GET" && req.url === "/users"){ + let stateJSON = JSON.stringify(state); + res.write(stateJSON); + } + else if(req.method === "GET" && req.url.indexOf("/users/") > -1){ + let id = req.url.split('/'); + let user = users.find(u=>u["id"] === Number(id[2])) + let userJSON = JSON.stringify(user); + res.write(userJSON); + } + 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); + user.id = users.length+1; + }); + } + else if(req.method === "PUT" && req.url.indexOf("/users/")> -1){ + let body = []; + let id = req.url.split('/'); + let update = users.find(u=>u["id"] === Number(id[2])); + req.on('data', (chunk)=>{ + body.push(chunk); + }).on('end', ()=>{ + body = Buffer.concat(body).toString(); + body = JSON.parse(body); + update.name = body.name; + }); + } + else if(req.method === "DELETE" && req.url.indexOf("/user/")>-1){ + let id = req.url.split('/'); + let dump = users.find(u=>u["id"] === Number(id[2])); + //dump.isActive = false; + users.splice(dump, 1); + res.write("deleted"); + + } + else{ + res.write("Not Found"); + } + res.end(); +} 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"