Homepg & ProductDet.. now updated

This commit is contained in:
Mann Patel
2025-03-25 14:47:54 -06:00
parent e7a6e1dd8b
commit f52693dfc2
4 changed files with 156 additions and 68 deletions

View File

@@ -24,9 +24,19 @@ exports.addToFavorite = async (req, res) => {
exports.getAllProducts = async (req, res) => {
try {
const [data, fields] = await db.execute(`
SELECT p.*, i.URL
FROM Product p
LEFT JOIN Image_URL i ON p.ProductID = i.ProductID
SELECT
P.ProductID,
P.Name AS ProductName,
P.Price,
P.Date AS DateUploaded,
U.Name AS SellerName,
I.URL AS ProductImage,
C.Name AS Category
FROM Product P
LEFT JOIN
(SELECT ProductID, URL FROM Image_URL LIMIT 1) I ON P.ProductID = I.ProductID
JOIN User U ON P.UserID = U.UserID
JOIN Category C ON P.CategoryID = C.CategoryID;
`);
res.json({
@@ -43,10 +53,10 @@ exports.getAllProducts = async (req, res) => {
}
};
// Get a single product by ID along with image URLs
exports.getProductById = async (req, res) => {
const { id } = req.params;
console.log(id);
console.log("Received Product ID:", id);
try {
const [data] = await db.execute(
`
@@ -58,29 +68,42 @@ exports.getProductById = async (req, res) => {
[id],
);
// Log raw data for debugging
console.log("Raw Database Result:", data);
if (data.length === 0) {
console.log("No product found with ID:", id);
return res.status(404).json({
success: false,
message: "Product not found",
});
}
// Assuming that `data` contains product information and the image URLs
// Collect all image URLs
const images = data
.map((row) => row.image_url)
.filter((url) => url !== null);
// Create product object with all details from first row and collected images
const product = {
...data[0], // First product found in the query
images: data.map((image) => image.image_url), // Collect all image URLs into an array
...data[0], // Base product details
images: images, // Collected image URLs
};
// Log processed product for debugging
console.log("Processed Product:", product);
res.json({
success: true,
message: "Product fetched successfully",
data: product,
});
} catch (error) {
console.error("Error fetching product:", error);
console.error("Full Error Details:", error);
return res.status(500).json({
success: false,
error: "Database error occurred",
message: "Database error occurred",
error: error.message,
});
}
};

View File

@@ -1,16 +1,20 @@
// routes/product.js
const express = require("express");
const {
addToFavorite,
getAllProducts,
getProductById,
} = require("../controllers/product");
const router = express.Router();
// Add detailed logging middleware
router.use((req, res, next) => {
console.log(`Incoming ${req.method} request to ${req.path}`);
next();
});
router.post("/add_fav_product", addToFavorite);
router.get("/get_product", getAllProducts);
router.post("/get_productID", getProductById);
router.get("/:id", getProductById); // Simplified route
module.exports = router;