diff --git a/shop-routes/order.js b/shop-routes/order.js index 0fa0b2a440fa06044c1c1ac374dfefe8d88f515a..d934947a8c86b0875b9d4b222063b3fe5db5f52c 100644 --- a/shop-routes/order.js +++ b/shop-routes/order.js @@ -80,28 +80,40 @@ router.get('/detail/:orderId', isAuthenticated, async (req, res) => { }); // อัปเดตที่อยู่จัดส่งของคำสั่งซื้อ -router.put('/detail/:orderId', async (req, res) => { +router.put('/detail/:orderId', isAuthenticated, async (req, res) => { try { - const { orderId } = req.params; - const { shipping_address } = req.body; - - console.log("Updating Shipping Address..."); + console.log("Updating order..."); console.log("Session ID:", req.session.id); - console.log("Order ID:", orderId); - console.log("New Address:", shipping_address); + console.log("Order ID:", req.params.orderId); + console.log("New Address:", req.body.shipping_address); + + const [orderResults] = await pool.query( + `SELECT id, session_id FROM orders WHERE id = ?`, + [req.params.orderId] + ); - if (!shipping_address) { - return res.status(400).json({ message: "กรุณากรอกที่อยู่จัดส่ง" }); + if (orderResults.length === 0) { + console.log("Order not found!"); + return res.status(404).json({ message: "ไม่พบคำสั่งซื้อ" }); } - // อัปเดตที่อยู่เฉพาะของคำสั่งซื้อที่เป็นของ session นั้นๆ + console.log("Order Session ID:", orderResults[0].session_id); + console.log("Request Session ID:", req.session.id); + + // ตรวจสอบว่าผู้ใช้มีสิทธิ์แก้ไขที่อยู่หรือไม่ + if (orderResults[0].session_id !== req.session.id) { + console.log("Session ID ไม่ตรงกัน!"); + return res.status(403).json({ message: "ไม่มีสิทธิ์แก้ไขที่อยู่นี้" }); + } + + // อัปเดตที่อยู่ const [result] = await pool.query( "UPDATE orders SET shipping_address = ? WHERE id = ? AND session_id = ?", - [shipping_address, orderId, req.session.id] + [req.body.shipping_address, req.params.orderId, req.session.id] ); if (result.affectedRows === 0) { - return res.status(404).json({ message: "ไม่พบคำสั่งซื้อนี้ หรือไม่มีสิทธิ์แก้ไข" }); + return res.status(404).json({ message: "ไม่สามารถอัปเดตที่อยู่ได้" }); } res.json({ message: "อัปเดตที่อยู่สำเร็จ!" }); @@ -111,7 +123,6 @@ router.put('/detail/:orderId', async (req, res) => { } }); - // ป้องกันไม่ให้เข้า Checkout ถ้าไม่ได้ Login router.get('/checkout', isAuthenticated, async (req, res) => { try {