From 3df393aa016e0826b7940925425ae3b6a6e9c012 Mon Sep 17 00:00:00 2001 From: tomlukrprogram Date: Tue, 9 Jan 2024 00:26:38 +0000 Subject: [PATCH 1/2] setup done --- src/index.js | 1 + src/server.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 8c18618..47cc514 100644 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,4 @@ + const app = require('./server.js') const port = 3030 diff --git a/src/server.js b/src/server.js index 30f0ce3..eb434e1 100644 --- a/src/server.js +++ b/src/server.js @@ -7,7 +7,7 @@ app.use(morgan("dev")) app.use(cors()) app.use(express.json()) -// write your app code here + module.exports = app From ae684ecbe79c34a80c5e49e39cabd9184ad39599 Mon Sep 17 00:00:00 2001 From: tomlukrprogram Date: Tue, 9 Jan 2024 00:43:05 +0000 Subject: [PATCH 2/2] core finished --- src/server.js | 64 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 8 deletions(-) diff --git a/src/server.js b/src/server.js index eb434e1..6d628cb 100644 --- a/src/server.js +++ b/src/server.js @@ -1,13 +1,61 @@ -const express = require("express") -const morgan = require("morgan") -const cors = require("cors") -const app = express() +const express = require('express'); +const morgan = require('morgan'); +const cors = require('cors'); +const contactsData = require('../data/contacts'); -app.use(morgan("dev")) -app.use(cors()) -app.use(express.json()) +const app = express(); +app.use(morgan('dev')); +app.use(cors()); +app.use(express.json()); +app.get('/contacts', (req, res) => { + res.status(200).json({ contacts: contactsData }); +}); -module.exports = app + +app.get('/contacts/:id', (req, res) => { + const { id } = req.params; + const contact = contactsData.find((contact) => contact.id === parseInt(id)); + if (!contact) { + res.status(404).json({ message: 'Contact not found' }); + } else { + res.status(200).json({ contact }); + } +}); + +app.post('/contacts', (req, res) => { + const newContact = req.body; + newContact.id = contactsData.length + 1; + contactsData.push(newContact); + res.status(201).json({ contact: newContact }); +}); + + +app.put('/contacts/:id', (req, res) => { + const { id } = req.params; + const updatedContact = req.body; + const index = contactsData.findIndex((contact) => contact.id === parseInt(id)); + if (index === -1) { + res.status(404).json({ message: 'Contact not found' }); + } else { + contactsData[index] = { ...contactsData[index], ...updatedContact }; + res.status(200).json({ contact: contactsData[index] }); + } +}); + + +app.delete('/contacts/:id', (req, res) => { + const { id } = req.params; + const index = contactsData.findIndex((contact) => contact.id === parseInt(id)); + if (index === -1) { + res.status(404).json({ message: 'Contact not found' }); + } else { + const deletedContact = contactsData.splice(index, 1); + res.status(200).json({ contact: deletedContact[0] }); + } +}); + + +module.exports = app;