CRUD_Assignment/index.js
2025-01-16 14:55:51 +05:30

78 lines
2.1 KiB
JavaScript

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}`);
})