added delete function to product table

This commit is contained in:
2026-05-29 23:04:41 +02:00
parent 6bacd1c605
commit 9cab32ddea
6 changed files with 97 additions and 8 deletions
+1
View File
@@ -35,6 +35,7 @@ CREATE TABLE IF NOT EXISTS products (
picture VARCHAR(500) DEFAULT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted BOOLEAN DEFAULT FALSE NOT NULL,
FOREIGN KEY (storage_location) REFERENCES storage_locations(uuid) ON DELETE CASCADE
);
@@ -90,6 +90,7 @@ export const allProducts = async () => {
p.updated_at
FROM products p
JOIN storage_locations s ON p.storage_location = s.uuid
WHERE p.deleted = 0
`);
if (result.length > 0) {
@@ -137,3 +138,16 @@ export const updateItem = async (itemUUID, newValues) => {
return { code: "ep005" }; // error
}
};
export const deleteProduct = async (uuid) => {
const [result] = await pool.query(
`UPDATE products SET deleted = 1 WHERE uuid = UUID_TO_BIN(?);`,
[uuid],
);
if (result.affectedRows > 0) {
return { code: "sp006" }; // success
} else {
return { code: "ep006" }; // error
}
};
+30
View File
@@ -3,6 +3,7 @@ import dotenv from "dotenv";
import { authenticate } from "../../services/tokenService.js";
import {
allProducts,
deleteProduct,
newProduct,
productDetails,
setAmount,
@@ -147,4 +148,33 @@ router.post("/mutate/update-item", authenticate, async (req, res) => {
}
});
router.post("/delete-selection", authenticate, async (req, res) => {
let isError = false;
const uuidArray = req.body;
for (const uuid of uuidArray) {
const response = await deleteProduct(uuid);
if (response.code === "ep006" || !response) {
isError = true;
break;
}
}
if (isError === false) {
res.status(202).json({
success: true,
code: "sp006",
data: null,
message: "",
});
} else {
res.status(500).json({
success: false,
code: "ep006",
data: null,
message: "",
});
}
});
export default router;