const express = require('express'); const users = require('./MOCK_DATA.json'); const fs = require('fs'); const app = express(); const PORT = 3000; app.use(express.urlencoded({ extended: true })); app.get('/users', (req, res) => { return res?.json(users); }) app.get('/users/:id', (req, res) => { const id = req.params.id; const user = users.find((user) => user.id == id); if (!user) { return res.status(404).json({ error: "404 User not found" }); } return res.json(user); }) app.post("/users", (req, res) => { const body = req.body; console.log(body); users.push({ ...body, id: users.length + 1 }); fs.writeFile('./MOCK_DATA.json', JSON.stringify(users), (err, data) => { if (err) { return res.status(500).json({ error: "Failed to save user data" }); } return res.status(201).json({ status: "Success", id: users.length }); }); }); app.delete("/users/:id", (req, res) => { const id = Number(req.params.id); const userIndex = users.findIndex((user) => user.id === id); if (userIndex === -1) { return res.status(404).json({ error: "User not found" }); } users.splice(userIndex, 1); fs.writeFile('./MOCK_DATA.json', JSON.stringify(users, null, 2), (err) => { if (err) { return res.status(500).json({ error: "Failed to delete user" }); } return res.status(200).json({ status: "Successfully deleted", id: id }); }); }); app.put("/users/:id", (req, res) => { const id = req.params.id; const user = users.find((user) => user.id == id); const updatedFields = ['firstName', 'lastName', 'email', 'gender', 'jobTitle']; updatedFields.map((field) => { if (req.body[field]) { user[field] = req.body[field]; } }) fs.writeFile('./MOCK_DATA.json', JSON.stringify(users), (err, data) => { if (err) { return res.status(500).json({ error: "Failed to update user data" }); } return res.status(200).json({ status: "Successfully updated", id: id }); }); }); app.listen(PORT, () => { console.log(`Server is running on ${PORT}`); })