From 7cb14280465135b1db84b84b4253436eac798a9f Mon Sep 17 00:00:00 2001 From: Atiwit Pattanapukdee <65160394@go.buu.ac.th> Date: Tue, 18 Mar 2025 12:35:17 +0700 Subject: [PATCH] Project Round 3 --- controllers/tourController.js | 33 ++++++++++++++++++--------------- views/createtour.ejs | 10 +++++----- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/controllers/tourController.js b/controllers/tourController.js index cb73abc..5bffada 100644 --- a/controllers/tourController.js +++ b/controllers/tourController.js @@ -83,21 +83,24 @@ exports.Logout = (req, res) => { //CRUD // ฟังก์ชั่นสำหรับแสดงฟอร์มสร้างทัวร์ exports.getCreateTour = (req, res) => { - res.render('createtour', { message: null }); // แสดงฟอร์มสร้างทัวร์ - }; - - exports.createTour = async (req, res) => { + res.render('createtour', { message: null }); // ไม่ต้องดึงข้อมูลทัวร์ใด ๆ +}; + +exports.createTour = async (req, res) => { const { name, description, price, duration } = req.body; - + try { - // สร้างทัวร์ใหม่ในฐานข้อมูล - await Tour.createTour({ name, description, price, duration }); - res.redirect('/'); // ไปยังหน้าหลักหลังจากสร้างทัวร์เสร็จ + if (!name || !description || !price || !duration) { + return res.render('createtour', { message: 'All fields are required!' }); + } + + await Tour.createTour({ name, description, price, duration }); // เพิ่มข้อมูลทัวร์ + res.redirect('/'); // หลังจากสร้างเสร็จให้กลับไปที่หน้าแรก } catch (error) { - console.error(error); - res.render('createtour', { message: error.message }); // แสดงข้อความข้อผิดพลาด + console.error('Error creating tour:', error); + res.render('createtour', { message: 'Error creating tour' }); } - }; +}; // ฟังก์ชั่นสำหรับสร้างทัวร์ exports.postCreateTour = async (req, res) => { const { name, description, price, duration } = req.body; @@ -113,7 +116,7 @@ exports.postCreateTour = async (req, res) => { console.error(error); res.render('createtour', { message: 'เกิดข้อผิดพลาดในการสร้างทัวร์' }); } - }; +}; exports.getEditTour = async (req, res) => { try { const tour = await Tour.getTourById(req.params.id); @@ -122,7 +125,7 @@ exports.postCreateTour = async (req, res) => { } catch (error) { res.status(500).send('เกิดข้อผิดพลาด'); } - }; +}; exports.postEditTour = async (req, res) => { const { name, description, price, duration } = req.body; @@ -134,7 +137,7 @@ exports.postCreateTour = async (req, res) => { } catch (error) { res.status(500).send('เกิดข้อผิดพลาดในการแก้ไขทัวร์'); } - }; +}; exports.deleteTour = async (req, res) => { try { await Tour.deleteTour(req.params.id); // คำสั่งในการลบทัวร์ @@ -142,5 +145,5 @@ exports.postCreateTour = async (req, res) => { } catch (error) { res.status(500).send('เกิดข้อผิดพลาดในการลบทัวร์'); } - }; +}; diff --git a/views/createtour.ejs b/views/createtour.ejs index 95ebcfe..3adfe0c 100644 --- a/views/createtour.ejs +++ b/views/createtour.ejs @@ -15,19 +15,19 @@ <form action="/tour/create" method="POST"> <div> <label for="tourName">Tour Name:</label> - <input type="text" id="tourName" name="tourName" required> + <input type="text" id="tourName" name="name" required> </div> <div> <label for="tourDescription">Description:</label> - <textarea id="tourDescription" name="tourDescription" required></textarea> + <textarea id="tourDescription" name="description" required></textarea> </div> <div> <label for="tourPrice">Price:</label> - <input type="number" id="tourPrice" name="tourPrice" required> + <input type="number" id="tourPrice" name="price" required> </div> <div> - <label for="tourDate">Date:</label> - <input type="date" id="tourDate" name="tourDate" required> + <label for="tourDuration">Duration (days):</label> + <input type="number" id="tourDuration" name="duration" required> </div> <button type="submit">Create Tour</button> </form> -- GitLab