test
This commit is contained in:
parent
40d5a89cd5
commit
e74fa5a8ee
248
index.js
248
index.js
|
|
@ -1,126 +1,3 @@
|
|||
// 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");
|
||||
|
||||
|
|
@ -131,90 +8,121 @@ const PORT = 8080;
|
|||
app.use(bodyParser.json());
|
||||
|
||||
// In-memory data store for demonstration
|
||||
let cartData = {
|
||||
cart: {},
|
||||
let attributesData = {
|
||||
attributes: [],
|
||||
};
|
||||
|
||||
// CREATE - Add or update cart items
|
||||
app.post("/cart", (req, res) => {
|
||||
const { cart } = req.body;
|
||||
// CREATE - Add or update attributes
|
||||
app.post("/attributes", (req, res) => {
|
||||
const { attributes } = req.body;
|
||||
|
||||
if (!cart || !cart.product || !cart.id) {
|
||||
return res.status(400).json({ error: "Product and ID are required" });
|
||||
if (!attributes || !Array.isArray(attributes)) {
|
||||
return res.status(400).json({ error: "Attributes must be an array" });
|
||||
}
|
||||
|
||||
// Add or update the cart item using the id as the key
|
||||
cartData.cart[cart.id] = {
|
||||
product: cart.product,
|
||||
id: cart.id,
|
||||
};
|
||||
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: "Cart updated successfully",
|
||||
cart: cartData,
|
||||
message: "Attributes updated successfully",
|
||||
attributes: attributesData.attributes,
|
||||
});
|
||||
});
|
||||
|
||||
// READ - Get the entire cart
|
||||
app.get("/cart", (req, res) => {
|
||||
// READ - Get all attributes
|
||||
app.get("/attributes", (req, res) => {
|
||||
res.json({
|
||||
message: "Cart retrieved successfully",
|
||||
cart: cartData,
|
||||
message: "Attributes retrieved successfully",
|
||||
attributes: attributesData.attributes,
|
||||
});
|
||||
});
|
||||
|
||||
// READ - Get a specific item in the cart by id
|
||||
app.get("/cart/:id", (req, res) => {
|
||||
const { id } = req.params;
|
||||
// READ - Get a specific attribute by key
|
||||
app.get("/attributes/:key", (req, res) => {
|
||||
const { key } = req.params;
|
||||
|
||||
const item = cartData.cart[id];
|
||||
const attribute = attributesData.attributes.find(
|
||||
(item) => item.key === key
|
||||
);
|
||||
|
||||
if (!item) {
|
||||
return res.status(404).json({ error: `Item with id '${id}' not found` });
|
||||
if (!attribute) {
|
||||
return res
|
||||
.status(404)
|
||||
.json({ error: `Attribute with key '${key}' not found` });
|
||||
}
|
||||
|
||||
res.json({
|
||||
message: "Item retrieved successfully",
|
||||
item: { [id]: item },
|
||||
message: "Attribute retrieved successfully",
|
||||
attribute,
|
||||
});
|
||||
});
|
||||
|
||||
// UPDATE - Update a specific item in the cart by id
|
||||
app.put("/cart/:id", (req, res) => {
|
||||
const { id } = req.params;
|
||||
const { product } = req.body;
|
||||
// UPDATE - Update a specific attribute by key
|
||||
app.put("/attributes/:key", (req, res) => {
|
||||
const { key } = req.params;
|
||||
const { value } = req.body;
|
||||
|
||||
if (!product) {
|
||||
return res.status(400).json({ error: "Product is required" });
|
||||
if (!value) {
|
||||
return res
|
||||
.status(400)
|
||||
.json({ error: "Value is required to update the attribute" });
|
||||
}
|
||||
|
||||
if (!cartData.cart[id]) {
|
||||
return res.status(404).json({ error: `Item with id '${id}' not found` });
|
||||
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 item
|
||||
cartData.cart[id].product = product;
|
||||
// Update the value
|
||||
attribute.value = value;
|
||||
|
||||
res.json({
|
||||
message: "Item updated successfully",
|
||||
cart: cartData,
|
||||
message: "Attribute updated successfully",
|
||||
attributes: attributesData.attributes,
|
||||
});
|
||||
});
|
||||
|
||||
// DELETE - Remove a specific item from the cart by id
|
||||
app.delete("/cart/:id", (req, res) => {
|
||||
const { id } = req.params;
|
||||
// DELETE - Remove a specific attribute by key
|
||||
app.delete("/attributes/:key", (req, res) => {
|
||||
const { key } = req.params;
|
||||
|
||||
if (!cartData.cart[id]) {
|
||||
return res.status(404).json({ error: `Item with id '${id}' not found` });
|
||||
const index = attributesData.attributes.findIndex(
|
||||
(item) => item.key === key
|
||||
);
|
||||
|
||||
if (index === -1) {
|
||||
return res
|
||||
.status(404)
|
||||
.json({ error: `Attribute with key '${key}' not found` });
|
||||
}
|
||||
|
||||
// Delete the item
|
||||
delete cartData.cart[id];
|
||||
// Remove the attribute
|
||||
attributesData.attributes.splice(index, 1);
|
||||
|
||||
res.json({
|
||||
message: "Item deleted successfully",
|
||||
cart: cartData,
|
||||
message: "Attribute deleted successfully",
|
||||
attributes: attributesData.attributes,
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user