fix delete category

This commit is contained in:
estherdev03
2025-04-21 17:03:09 -06:00
parent a8745ed94c
commit 0a1db869f7
3 changed files with 21 additions and 25 deletions

View File

@@ -7,7 +7,7 @@ exports.getAllCategoriesWithPagination = async (req, res) => {
try {
const [data, _] = await db.execute(
"SELECT * FROM Category C ORDER BY C.CategoryID ASC LIMIT ? OFFSET ?",
[limit.toString(), offset.toString()],
[limit.toString(), offset.toString()]
);
const [result] = await db.execute("SELECT COUNT(*) AS count FROM Category");
@@ -24,7 +24,7 @@ exports.addCategory = async (req, res) => {
try {
const [result] = await db.execute(
"INSERT INTO Category (Name) VALUES (?)",
[name],
[name]
);
res.json({ message: "Adding new category successfully!" });
} catch (error) {
@@ -34,15 +34,23 @@ exports.addCategory = async (req, res) => {
exports.removeCategory = async (req, res) => {
const { id } = req.params;
try {
if (id == "1") throw Error("You're not allowed to delete this category!");
const [updateResult] = await db.execute(
"UPDATE Product SET CategoryID = 1 WHERE CategoryID = ?",
[id]
);
const [result] = await db.execute(
`DELETE FROM Category WHERE CategoryID = ?`,
[id],
[id]
);
res.json({ message: "Delete category successfully!" });
} catch (error) {
res.json({ error: "Cannot remove category from database!" });
res.json({
error: error.message || "Cannot remove category from database!",
});
}
};

View File

@@ -72,6 +72,7 @@ VALUES
INSERT INTO
Category (Name)
VALUES
('Other'),
('Textbooks'),
('Electronics'),
('Furniture'),
@@ -100,9 +101,8 @@ VALUES
('Winter Clothing'),
('Photography Equipment'),
('Event Tickets'),
('Software Licenses'),
('Transportation (Car Pool)'),
('Other');
('Software Licenses');
-- Insert Products
INSERT INTO
@@ -454,4 +454,5 @@ VALUES
1,
'This is a great fake product! Totally recommend it.',
5,
);
'2024-10-02 16:00:00'
)

View File

@@ -28,19 +28,6 @@ CREATE TABLE Category (
Name VARCHAR(255) NOT NULL
);
CREATE TABLE Product (
ProductID INT AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(255) NOT NULL,
Price DECIMAL(10, 2) NOT NULL,
StockQuantity INT,
UserID INT,
Description TEXT,
CategoryID INT NOT NULL,
Date DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (UserID) REFERENCES User (UserID),
FOREIGN KEY (CategoryID) REFERENCES Category (CategoryID)
);
-- Product Entity
CREATE TABLE Product (
ProductID INT AUTO_INCREMENT PRIMARY KEY,
@@ -51,7 +38,7 @@ CREATE TABLE Product (
Description TEXT,
CategoryID INT,
Date DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (UserID) REFERENCES User (UserID) ON DELETE SET NULL,
FOREIGN KEY (UserID) REFERENCES User (UserID) ON DELETE CASCADE,
FOREIGN KEY (CategoryID) REFERENCES Category (CategoryID)
);
@@ -73,7 +60,7 @@ CREATE TABLE Review (
AND Rating <= 5
),
Date DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (UserID) REFERENCES User (UserID) ON DELETE SET NULL,
FOREIGN KEY (UserID) REFERENCES User (UserID) ON DELETE CASCADE,
FOREIGN KEY (ProductID) REFERENCES Product (ProductID) ON DELETE CASCADE
);
@@ -85,7 +72,7 @@ CREATE TABLE Transaction (
Date DATETIME DEFAULT CURRENT_TIMESTAMP,
PaymentStatus VARCHAR(50),
FOREIGN KEY (UserID) REFERENCES User (UserID) ON DELETE CASCADE,
FOREIGN KEY (ProductID) REFERENCES Product (ProductID) ON DELETE SET NULL
FOREIGN KEY (ProductID) REFERENCES Product (ProductID) ON DELETE CASCADE
);
-- Recommendation Entity (Many-to-One with User, Many-to-One with Product)