From bb735b04e2f36a86a929a851667f00bc0c4471e4 Mon Sep 17 00:00:00 2001 From: Joseph William Hauger Date: Tue, 16 Jul 2019 16:29:43 -0500 Subject: [PATCH 1/3] Part 1 mostly working --- index.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/index.js b/index.js index 8b13789..4a78db9 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); + res.write(user); + res.end(); + }); + } + 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); + user.name = body.name; + res.write(JSON.stringify(user)) + res.end(); + }); + } + else if(req.method === "DELETE" && req.url.indexOf("/user/")>-1){ + let id = req.url.split('/'); + let update = users.find(u=>u["_id"] === Number(id[2])) + users.splice(update, 1); + } + else{ + res.write("Not Found"); + } + res.end(); +} From 6376c7a651cbae6f4d6cb052324bcc1300da6eaf Mon Sep 17 00:00:00 2001 From: Joseph William Hauger Date: Wed, 17 Jul 2019 10:08:50 -0500 Subject: [PATCH 2/3] part 2-4 need work --- index.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 4a78db9..98089a2 100644 --- a/index.js +++ b/index.js @@ -24,11 +24,10 @@ function messageReceived(req, res) { req.on('data', (chunk)=>{ body.push(chunk); }).on('end', ()=>{ - body = Buffer.concat(body).toString(); + body = Buffer.concat(body).toString(); let user = JSON.parse(body); + user.id = users.length+1; users.push(user); - res.write(user); - res.end(); }); } else if(req.method === "PUT" && req.url.indexOf("/users/")> -1){ From 17707331b3d56db606623ecf2f21410f1905e637 Mon Sep 17 00:00:00 2001 From: Joseph William Hauger Date: Thu, 18 Jul 2019 12:27:21 -0500 Subject: [PATCH 3/3] delete not working --- index.js | 17 +++++++++-------- state.js | 10 +++++----- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/index.js b/index.js index 98089a2..0a819c0 100644 --- a/index.js +++ b/index.js @@ -15,7 +15,7 @@ function messageReceived(req, res) { } 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 user = users.find(u=>u["id"] === Number(id[2])) let userJSON = JSON.stringify(user); res.write(userJSON); } @@ -26,28 +26,29 @@ function messageReceived(req, res) { }).on('end', ()=>{ body = Buffer.concat(body).toString(); let user = JSON.parse(body); - user.id = users.length+1; 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])) + 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); - user.name = body.name; - res.write(JSON.stringify(user)) - res.end(); + update.name = body.name; }); } else if(req.method === "DELETE" && req.url.indexOf("/user/")>-1){ let id = req.url.split('/'); - let update = users.find(u=>u["_id"] === Number(id[2])) - users.splice(update, 1); + 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"); 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"