From ace157aa6715bad954f1801c12dfc5ac535d551f Mon Sep 17 00:00:00 2001
From: Atiwit Pattanapukdee <65160394@go.buu.ac.th>
Date: Thu, 20 Mar 2025 18:44:01 +0700
Subject: [PATCH] Project Round 8

---
 controllers/tourController.js | 29 ++++++++++++++++++-----------
 models/tourModel.js           | 14 ++++++++++----
 2 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/controllers/tourController.js b/controllers/tourController.js
index b30c25b..c4d94bf 100644
--- a/controllers/tourController.js
+++ b/controllers/tourController.js
@@ -201,19 +201,26 @@ exports.getEditTour = async (req, res) => {
   }
 };
   
-  exports.postEditTour = async (req, res) => {
+exports.postEditTour = async (req, res) => {
+  console.log('ðŸ“Ĩ Data received:', req.body);  // āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđ„āļ”āđ‰āļĢāļąāļšāļˆāļēāļāļŸāļ­āļĢāđŒāļĄ
+  const { name, description, price, duration } = req.body;
 
-    console.log('ðŸ“Ĩ Data received:', req.body);
-    const { name, description, price, duration } = req.body;
-    const tourData = { name, description, price, duration };
-  
-    try {
-      await Tour.updateTour(req.params.userId, tourData); // āļ„āļģāļŠāļąāđˆāļ‡āđƒāļ™āļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•
-      res.redirect('/tour/' + req.params.userId); // āđ„āļ›āļ—āļĩāđˆāļŦāļ™āđ‰āļēāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ—āļąāļ§āļĢāđŒ
-    } catch (error) {
-      res.status(500).send('āđ€āļāļīāļ”āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđƒāļ™āļāļēāļĢāđāļāđ‰āđ„āļ‚āļ—āļąāļ§āļĢāđŒ');
-    }
+  // āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ§āđˆāļēāļĄāļĩāļ„āđˆāļēāļ„āļĢāļšāļ–āđ‰āļ§āļ™āļŦāļĢāļ·āļ­āđ„āļĄāđˆ
+  if (!name || !description || !price || !duration) {
+    return res.status(400).send('āļāļĢāļļāļ“āļēāļāļĢāļ­āļāļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļŦāđ‰āļ„āļĢāļšāļ—āļļāļāļŠāđˆāļ­āļ‡');
+  }
+
+  const tourData = { name, description, price, duration };
+
+  try {
+    await Tour.updateTour(req.params.tourId, tourData); // āļ•āļĢāļ§āļˆāļŠāļ­āļš tourId
+    res.redirect('/tour/' + req.params.tourId); // āđ„āļ›āļ—āļĩāđˆāļŦāļ™āđ‰āļēāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ—āļąāļ§āļĢāđŒ
+  } catch (error) {
+    console.error('Error updating tour:', error);  // āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”
+    res.status(500).send('āđ€āļāļīāļ”āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđƒāļ™āļāļēāļĢāđāļāđ‰āđ„āļ‚āļ—āļąāļ§āļĢāđŒ');
+  }
 };
+
 exports.deleteTour = async (req, res) => {
   try {
     const tour = await Tour.getTourById(req.params.userId);
diff --git a/models/tourModel.js b/models/tourModel.js
index ad7f7e3..052fd0b 100644
--- a/models/tourModel.js
+++ b/models/tourModel.js
@@ -58,20 +58,26 @@ class Tour {
     
   
     // āļ­āļąāļ›āđ€āļ”āļ•āļ—āļąāļ§āļĢāđŒ
-    static async updateTour(userId, tourData) {
+    static async updateTour(tourId, tourData) {
       const { name, description, price, duration } = tourData;
-      const query = 'UPDATE tours SET name = ?, description = ?, price = ?, duration = ? WHERE userId = ?';
+    
+      if (!name || !description || !price || !duration) {
+        throw new Error('āļ‚āđ‰āļ­āļĄāļđāļĨāđ„āļĄāđˆāļ„āļĢāļšāļ–āđ‰āļ§āļ™');
+      }
+    
+      const query = 'UPDATE tours SET name = ?, description = ?, price = ?, duration = ? WHERE id = ?';
       
       try {
-        const [results] = await pool.execute(query, [name, description, price, duration, userId]);
+        const [results] = await pool.execute(query, [name, description, price, duration, tourId]);
         console.log('✅ Update results:', results);
         return results;
       } catch (error) {
-        console.error('Error updating tour:', error); // āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ
+        console.error('Error updating tour:', error); // āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļˆāļēāļāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•
         throw error;
       }
     }
     
+    
   
     // āļ”āļķāļ‡āļ—āļąāļ§āļĢāđŒāļ•āļēāļĄ ID
     static async getTourById(id) {
-- 
GitLab