diff --git a/shop-routes/cart.js b/shop-routes/cart.js index 1d77cfe3d2fab90bc8fea5cb32676815b9efbfe1..e1b087668a383cefd0531c137217a4248a565e93 100644 --- a/shop-routes/cart.js +++ b/shop-routes/cart.js @@ -17,23 +17,35 @@ async function calculateTotal(sessionId) { // เนเธชเธ”เธเธ•เธฐเธเธฃเนเธฒเธชเธดเธเธเนเธฒ router.get('/', async (req, res) => { try { + if (!req.session.user) { + return res.status(401).send('Unauthorized'); + } + const [cartItems] = await pool.query( - `SELECT cart_items.*, products.name, products.price, products.stock + `SELECT cart_items.*, products.name, products.price, products.stock, products.description FROM cart_items JOIN products ON cart_items.product_id = products.id - WHERE session_id = ?`, - [req.session.id] + WHERE cart_items.user_id = ?`, + [req.session.user.id] ); - const total = await calculateTotal(req.session.id); + + const total = await calculateTotal(req.session.user.id); res.render('cart', { cartItems, total }); } catch (error) { - console.error(error); + console.error("Error fetching cart:", error); res.status(500).send('Error fetching cart'); } }); // เน€เธเธดเนเธกเธชเธดเธเธเนเธฒเธฅเธเธ•เธฐเธเธฃเนเธฒ router.post('/add', async (req, res) => { + console.log("Session User:", req.session.user); + console.log("Received Data:", req.body); + + if (!req.session.user) { + return res.status(401).send('Unauthorized'); + } + const { productId, quantity } = req.body; try { const [[product]] = await pool.query( @@ -48,14 +60,12 @@ router.post('/add', async (req, res) => { return res.status(400).send('เธชเธดเธเธเนเธฒเธกเธตเธเธณเธเธงเธเนเธกเนเน€เธเธตเธขเธเธเธญ'); } - // เธ•เธฃเธงเธเธชเธญเธเธงเนเธฒเธชเธดเธเธเนเธฒเธเธตเนเธกเธตเธญเธขเธนเนเนเธเธ•เธฐเธเธฃเนเธฒเธซเธฃเธทเธญเธขเธฑเธ const [[existingItem]] = await pool.query( - 'SELECT id, quantity FROM cart_items WHERE session_id = ? AND product_id = ?', - [req.session.id, productId] + 'SELECT id, quantity FROM cart_items WHERE user_id = ? AND product_id = ?', + [req.session.user.id, productId] ); if (existingItem) { - // เธญเธฑเธเน€เธ”เธ•เธเธณเธเธงเธเธชเธดเธเธเนเธฒ const newQuantity = existingItem.quantity + parseInt(quantity); if (newQuantity > product.stock) { return res.status(400).send('เธชเธดเธเธเนเธฒเธกเธตเธเธณเธเธงเธเนเธกเนเน€เธเธตเธขเธเธเธญ'); @@ -65,20 +75,20 @@ router.post('/add', async (req, res) => { [newQuantity, existingItem.id] ); } else { - // เน€เธเธดเนเธกเธชเธดเธเธเนเธฒเนเธซเธกเน await pool.query( - 'INSERT INTO cart_items (session_id, product_id, quantity) VALUES (?, ?, ?)', - [req.session.id, productId, parseInt(quantity)] + 'INSERT INTO cart_items (user_id, product_id, quantity) VALUES (?, ?, ?)', + [req.session.user.id, productId, parseInt(quantity)] ); } res.redirect('/cart'); } catch (error) { - console.error(error); - res.status(500).send('Error adding to cart'); + console.error("Error adding to cart:", error); + res.status(500).send('Error adding to cart.'); } }); + // เธญเธฑเธเน€เธ”เธ—เธเธณเธเธงเธเธชเธดเธเธเนเธฒเนเธเธ•เธฐเธเธฃเนเธฒ router.post('/update', async (req, res) => { console.log("Received Data:", req.body);