From 40d5a89cd591c2eb26419033e8dbda17dfe69982 Mon Sep 17 00:00:00 2001 From: Kajal Thakur Date: Mon, 20 Jan 2025 19:18:01 +0530 Subject: [PATCH] dummy --- index.js | 247 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 175 insertions(+), 72 deletions(-) diff --git a/index.js b/index.js index 619a648..9f3c89d 100644 --- a/index.js +++ b/index.js @@ -1,121 +1,224 @@ +// const express = require("express"); +// const bodyParser = require("body-parser"); + +// const app = express(); + +// // Middleware to parse JSON +// app.use(bodyParser.json()); + +// // In-memory data store for demonstration +// let attributesData = { +// attributes: [], +// }; + +// // CREATE - Add or update attributes +// app.post("/attributes", (req, res) => { +// const { attributes } = req.body; + +// if (!attributes || !Array.isArray(attributes)) { +// return res.status(400).json({ error: "Attributes must be an array" }); +// } + +// for (const attribute of attributes) { +// if (!attribute.key || !attribute.value) { +// return res.status(400).json({ +// error: "Each attribute must have a 'key' and 'value'", +// }); +// } + +// // Check if the attribute already exists; if yes, update it +// const existingIndex = attributesData.attributes.findIndex( +// (item) => item.key === attribute.key +// ); +// if (existingIndex !== -1) { +// attributesData.attributes[existingIndex].value = attribute.value; +// } else { +// // Add new attribute +// attributesData.attributes.push(attribute); +// } +// } + +// res.status(201).json({ +// message: "Attributes updated successfully", +// attributes: attributesData.attributes, +// }); +// }); + +// // READ - Get all attributes +// app.get("/attributes", (req, res) => { +// res.json({ +// message: "Attributes retrieved successfully", +// attributes: attributesData.attributes, +// }); +// }); + +// // READ - Get a specific attribute by key +// app.get("/attributes/:key", (req, res) => { +// const { key } = req.params; + +// const attribute = attributesData.attributes.find( +// (item) => item.key === key +// ); + +// if (!attribute) { +// return res.status(404).json({ error: `Attribute with key '${key}' not found` }); +// } + +// res.json({ +// message: "Attribute retrieved successfully", +// attribute, +// }); +// }); + +// // UPDATE - Update a specific attribute by key +// app.put("/attributes/:key", (req, res) => { +// const { key } = req.params; +// const { value } = req.body; + +// if (!value) { +// return res.status(400).json({ error: "Value is required to update the attribute" }); +// } + +// const attribute = attributesData.attributes.find( +// (item) => item.key === key +// ); + +// if (!attribute) { +// return res.status(404).json({ error: `Attribute with key '${key}' not found` }); +// } + +// // Update the value +// attribute.value = value; + +// res.json({ +// message: "Attribute updated successfully", +// attributes: attributesData.attributes, +// }); +// }); + +// // DELETE - Remove a specific attribute by key +// app.delete("/attributes/:key", (req, res) => { +// const { key } = req.params; + +// const index = attributesData.attributes.findIndex( +// (item) => item.key === key +// ); + +// if (index === -1) { +// return res.status(404).json({ error: `Attribute with key '${key}' not found` }); +// } + +// // Remove the attribute +// attributesData.attributes.splice(index, 1); + +// res.json({ +// message: "Attribute deleted successfully", +// attributes: attributesData.attributes, +// }); +// }); + +// // Export app for serverless deployment +// module.exports = app; + + const express = require("express"); const bodyParser = require("body-parser"); const app = express(); +const PORT = 8080; // Middleware to parse JSON app.use(bodyParser.json()); // In-memory data store for demonstration -let attributesData = { - attributes: [], +let cartData = { + cart: {}, }; -// CREATE - Add or update attributes -app.post("/attributes", (req, res) => { - const { attributes } = req.body; +// CREATE - Add or update cart items +app.post("/cart", (req, res) => { + const { cart } = req.body; - if (!attributes || !Array.isArray(attributes)) { - return res.status(400).json({ error: "Attributes must be an array" }); + if (!cart || !cart.product || !cart.id) { + return res.status(400).json({ error: "Product and ID are required" }); } - for (const attribute of attributes) { - if (!attribute.key || !attribute.value) { - return res.status(400).json({ - error: "Each attribute must have a 'key' and 'value'", - }); - } - - // Check if the attribute already exists; if yes, update it - const existingIndex = attributesData.attributes.findIndex( - (item) => item.key === attribute.key - ); - if (existingIndex !== -1) { - attributesData.attributes[existingIndex].value = attribute.value; - } else { - // Add new attribute - attributesData.attributes.push(attribute); - } - } + // Add or update the cart item using the id as the key + cartData.cart[cart.id] = { + product: cart.product, + id: cart.id, + }; res.status(201).json({ - message: "Attributes updated successfully", - attributes: attributesData.attributes, + message: "Cart updated successfully", + cart: cartData, }); }); -// READ - Get all attributes -app.get("/attributes", (req, res) => { +// READ - Get the entire cart +app.get("/cart", (req, res) => { res.json({ - message: "Attributes retrieved successfully", - attributes: attributesData.attributes, + message: "Cart retrieved successfully", + cart: cartData, }); }); -// READ - Get a specific attribute by key -app.get("/attributes/:key", (req, res) => { - const { key } = req.params; +// READ - Get a specific item in the cart by id +app.get("/cart/:id", (req, res) => { + const { id } = req.params; - const attribute = attributesData.attributes.find( - (item) => item.key === key - ); + const item = cartData.cart[id]; - if (!attribute) { - return res.status(404).json({ error: `Attribute with key '${key}' not found` }); + if (!item) { + return res.status(404).json({ error: `Item with id '${id}' not found` }); } res.json({ - message: "Attribute retrieved successfully", - attribute, + message: "Item retrieved successfully", + item: { [id]: item }, }); }); -// UPDATE - Update a specific attribute by key -app.put("/attributes/:key", (req, res) => { - const { key } = req.params; - const { value } = req.body; +// UPDATE - Update a specific item in the cart by id +app.put("/cart/:id", (req, res) => { + const { id } = req.params; + const { product } = req.body; - if (!value) { - return res.status(400).json({ error: "Value is required to update the attribute" }); + if (!product) { + return res.status(400).json({ error: "Product is required" }); } - const attribute = attributesData.attributes.find( - (item) => item.key === key - ); - - if (!attribute) { - return res.status(404).json({ error: `Attribute with key '${key}' not found` }); + if (!cartData.cart[id]) { + return res.status(404).json({ error: `Item with id '${id}' not found` }); } - // Update the value - attribute.value = value; + // Update the item + cartData.cart[id].product = product; res.json({ - message: "Attribute updated successfully", - attributes: attributesData.attributes, + message: "Item updated successfully", + cart: cartData, }); }); -// DELETE - Remove a specific attribute by key -app.delete("/attributes/:key", (req, res) => { - const { key } = req.params; +// DELETE - Remove a specific item from the cart by id +app.delete("/cart/:id", (req, res) => { + const { id } = req.params; - const index = attributesData.attributes.findIndex( - (item) => item.key === key - ); - - if (index === -1) { - return res.status(404).json({ error: `Attribute with key '${key}' not found` }); + if (!cartData.cart[id]) { + return res.status(404).json({ error: `Item with id '${id}' not found` }); } - // Remove the attribute - attributesData.attributes.splice(index, 1); + // Delete the item + delete cartData.cart[id]; res.json({ - message: "Attribute deleted successfully", - attributes: attributesData.attributes, + message: "Item deleted successfully", + cart: cartData, }); }); -// Export app for serverless deployment -module.exports = app; +// Start the server +app.listen(PORT, () => { + console.log(`Server is running on http://localhost:${PORT}`); +});