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