From fba5bff8e934607d7e581a249049ecfe30a5b02a Mon Sep 17 00:00:00 2001 From: JOANNABUUMA1 Date: Fri, 21 Jun 2024 16:48:50 +0100 Subject: [PATCH 01/11] Core and pre-set up --- src/server.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/server.js b/src/server.js index 30f0ce3..723c433 100644 --- a/src/server.js +++ b/src/server.js @@ -9,5 +9,20 @@ app.use(express.json()) // write your app code here +let contacts = require("../data/contacts.js") + +app.get("/contacts", (req, res)=>{ + res.json({ + contacts + }) +}) + +app.post("/contacts", (req, res)=>{}) + +app.get("/contacts/:id", (req, res)=>{}) + +app.put("/contacts", (req, res)=>{}) + +app.delete("/contacts", (req, res)=>{}) module.exports = app From 6a0921952937032f5b4f10811b2cd6e3a65f7001 Mon Sep 17 00:00:00 2001 From: JOANNABUUMA1 Date: Fri, 21 Jun 2024 17:36:01 +0100 Subject: [PATCH 02/11] contacts id --- src/server.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/server.js b/src/server.js index 723c433..5d5844c 100644 --- a/src/server.js +++ b/src/server.js @@ -10,6 +10,7 @@ app.use(express.json()) // write your app code here let contacts = require("../data/contacts.js") +let contact_id_key = contacts.length + 1 app.get("/contacts", (req, res)=>{ res.json({ @@ -17,7 +18,15 @@ app.get("/contacts", (req, res)=>{ }) }) -app.post("/contacts", (req, res)=>{}) +app.post("/contacts", (req, res)=>{ + const newContact = req.body + newContact.id = contact_id_key + contacts.push(newContact) + + contact_id_key++ + + res.status(201).json({contact}) +}) app.get("/contacts/:id", (req, res)=>{}) From 678075413d6362ab2d2fdb70f65be5f28086697e Mon Sep 17 00:00:00 2001 From: JOANNABUUMA1 Date: Fri, 21 Jun 2024 17:47:03 +0100 Subject: [PATCH 03/11] get and delete contact by id --- src/server.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/server.js b/src/server.js index 5d5844c..d3094b1 100644 --- a/src/server.js +++ b/src/server.js @@ -25,13 +25,24 @@ app.post("/contacts", (req, res)=>{ contact_id_key++ - res.status(201).json({contact}) + res.status(201).json({contacts}) +}) + +app.get("/contacts/:id", (req, res)=>{ + const id = Number(req.params.id) + const found = contacts.find((contact) => contact.id === id) + res.json({contact: found}) }) -app.get("/contacts/:id", (req, res)=>{}) app.put("/contacts", (req, res)=>{}) -app.delete("/contacts", (req, res)=>{}) +app.delete("/contacts/:id", (req, res) => { + const id = Number(req.params.id); + const found = contacts.find((contact) => contact.id === id); + contacts = contacts.filter((contact) => contact.id !== id); + res.json({ contact: found }); + }); + module.exports = app From b88b9e45753f465b09e0ae5ea0b697449d0cc8d0 Mon Sep 17 00:00:00 2001 From: JOANNABUUMA1 Date: Fri, 21 Jun 2024 17:57:34 +0100 Subject: [PATCH 04/11] initial endpoints for contacts complete with an update functionality --- src/server.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/server.js b/src/server.js index d3094b1..d32821f 100644 --- a/src/server.js +++ b/src/server.js @@ -25,7 +25,7 @@ app.post("/contacts", (req, res)=>{ contact_id_key++ - res.status(201).json({contacts}) + res.status(201).json({contact}) }) app.get("/contacts/:id", (req, res)=>{ @@ -35,7 +35,15 @@ app.get("/contacts/:id", (req, res)=>{ }) -app.put("/contacts", (req, res)=>{}) +app.put("/contacts/:id", (req, res) => { + const id = Number(req.params.id); + const updates = req.body; + let found = contacts.find((contact) => contact.id === id); + found = { ...found, ...updates }; + res.json({ contact: found }); + }); + + app.delete("/contacts/:id", (req, res) => { const id = Number(req.params.id); From 0fc2479208dc21c19ebcfb80a4d48512edc14e4d Mon Sep 17 00:00:00 2001 From: JOANNABUUMA1 Date: Fri, 21 Jun 2024 18:08:57 +0100 Subject: [PATCH 05/11] end points for contact api --- src/server.js | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/server.js b/src/server.js index d32821f..ce3cc50 100644 --- a/src/server.js +++ b/src/server.js @@ -22,16 +22,14 @@ app.post("/contacts", (req, res)=>{ const newContact = req.body newContact.id = contact_id_key contacts.push(newContact) - contact_id_key++ - - res.status(201).json({contact}) -}) + res.status(201).json({contact:newContact}); +}); app.get("/contacts/:id", (req, res)=>{ const id = Number(req.params.id) - const found = contacts.find((contact) => contact.id === id) - res.json({contact: found}) + const found = contacts.find((contact) => contact.id === id); + res.json({contact: found}); }) @@ -39,12 +37,13 @@ app.put("/contacts/:id", (req, res) => { const id = Number(req.params.id); const updates = req.body; let found = contacts.find((contact) => contact.id === id); - found = { ...found, ...updates }; - res.json({ contact: found }); - }); + const foundIndex = contacts.indexOf(found) + const updated = { ...found, ...updates }; + contacts.splice(foundIndex, 1, updated) + res.json({ contact: updated }); +}); + - - app.delete("/contacts/:id", (req, res) => { const id = Number(req.params.id); const found = contacts.find((contact) => contact.id === id); From 1096f5a6d9701158220a3d1e7538258575dece89 Mon Sep 17 00:00:00 2001 From: JOANNABUUMA1 Date: Fri, 21 Jun 2024 18:14:33 +0100 Subject: [PATCH 06/11] Meetings: get all meetings --- src/server.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/server.js b/src/server.js index ce3cc50..6a4e270 100644 --- a/src/server.js +++ b/src/server.js @@ -52,4 +52,16 @@ app.delete("/contacts/:id", (req, res) => { }); + //meetings + let meetings = require("../data/meetings.js"); + let meeting_id_key = meetings.length + 1; + + app.get("/meetings", (req, res) => { + res.json({ + meetings, + }); + }); + + + module.exports = app From cd77cf31fd387bc03a18c4adb5898a3c04e1ea19 Mon Sep 17 00:00:00 2001 From: JOANNABUUMA1 Date: Fri, 21 Jun 2024 18:17:43 +0100 Subject: [PATCH 07/11] meetings: get meetings by id --- src/server.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/server.js b/src/server.js index 6a4e270..fda7d21 100644 --- a/src/server.js +++ b/src/server.js @@ -62,6 +62,12 @@ app.delete("/contacts/:id", (req, res) => { }); }); + app.get("/meetings/:id", (req, res) => { + const id = Number(req.params.id); + const found = meetings.find((meeting) => meeting.id === id); + res.json({ meeting: found }); + }); + module.exports = app From 977909e11f41b341e5a00c68c4f0094d1107ddb6 Mon Sep 17 00:00:00 2001 From: JOANNABUUMA1 Date: Fri, 21 Jun 2024 18:21:14 +0100 Subject: [PATCH 08/11] meetings:delete meetings --- src/server.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/server.js b/src/server.js index fda7d21..66e858c 100644 --- a/src/server.js +++ b/src/server.js @@ -68,6 +68,12 @@ app.delete("/contacts/:id", (req, res) => { res.json({ meeting: found }); }); - + app.delete("/meetings/:id", (req, res) => { + const id = Number(req.params.id); + const found = meetings.find((meeting) => meeting.id === id); + meetings = meetings.filter((meeting) => meeting.id !== id); + res.json({ meeting: found }); + }); + module.exports = app From e64c567d681871e00946fde3c5ed57ee7def5001 Mon Sep 17 00:00:00 2001 From: JOANNABUUMA1 Date: Fri, 21 Jun 2024 18:22:30 +0100 Subject: [PATCH 09/11] update meetings --- src/server.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/server.js b/src/server.js index 66e858c..400afdf 100644 --- a/src/server.js +++ b/src/server.js @@ -74,6 +74,17 @@ app.delete("/contacts/:id", (req, res) => { meetings = meetings.filter((meeting) => meeting.id !== id); res.json({ meeting: found }); }); + + app.put("/meetings/:id", (req, res) => { + const id = Number(req.params.id); + const updates = req.body; + const found = meetings.find((meeting) => meeting.id === id); + const foundIndex = meetings.indexOf(found); + const updated = { ...found, ...updates }; + meetings.splice(foundIndex, 1, updated); + res.json({ meeting: updated }); + }); + module.exports = app From dde8207eea67a80752ecf924dfd4b6bf70517bef Mon Sep 17 00:00:00 2001 From: JOANNABUUMA1 Date: Fri, 21 Jun 2024 18:26:54 +0100 Subject: [PATCH 10/11] get all contacts and meetings --- src/server.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/server.js b/src/server.js index 400afdf..159b014 100644 --- a/src/server.js +++ b/src/server.js @@ -84,6 +84,13 @@ app.delete("/contacts/:id", (req, res) => { meetings.splice(foundIndex, 1, updated); res.json({ meeting: updated }); }); + + app.get("/contact/:id/meeting", (req, res) => { + const id = Number(req.params.id); + const found = meetings.find((meeting) => meeting.contactId === id); + res.json({ meetings: found }); + }); + From 9f2a3c52ae8d383316f586027d626171a77cb376 Mon Sep 17 00:00:00 2001 From: JOANNABUUMA1 Date: Fri, 21 Jun 2024 20:19:23 +0100 Subject: [PATCH 11/11] final endpoints on meetings updates and a few bug corrections --- src/server.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/server.js b/src/server.js index 159b014..a9c2187 100644 --- a/src/server.js +++ b/src/server.js @@ -32,7 +32,6 @@ app.get("/contacts/:id", (req, res)=>{ res.json({contact: found}); }) - app.put("/contacts/:id", (req, res) => { const id = Number(req.params.id); const updates = req.body; @@ -48,6 +47,7 @@ app.delete("/contacts/:id", (req, res) => { const id = Number(req.params.id); const found = contacts.find((contact) => contact.id === id); contacts = contacts.filter((contact) => contact.id !== id); + meetings = meetings.filter((meeting) => meeting.contactId !== id); res.json({ contact: found }); }); @@ -63,7 +63,7 @@ app.delete("/contacts/:id", (req, res) => { }); app.get("/meetings/:id", (req, res) => { - const id = Number(req.params.id); + const id = Number(req.params.id); const found = meetings.find((meeting) => meeting.id === id); res.json({ meeting: found }); }); @@ -85,11 +85,22 @@ app.delete("/contacts/:id", (req, res) => { res.json({ meeting: updated }); }); - app.get("/contact/:id/meeting", (req, res) => { + app.get("/contacts/:id/meetings", (req, res) => { const id = Number(req.params.id); - const found = meetings.find((meeting) => meeting.contactId === id); + const found = meetings.filter((meeting) => meeting.contactId === id); res.json({ meetings: found }); }); + + app.post("/contacts/:id/meetings", (req, res) => { + const contactId = Number(req.params.id); + const newMeeting = req.body; + newMeeting.id = meeting_id_key; + newMeeting.contactId = contactId; + meetings.push(newMeeting); + meeting_id_key++; + res.status(201).json({ meeting: newMeeting }); + }); +