diff --git a/controllers/tourController.js b/controllers/tourController.js index e8f29eab8efcc8f9ad44cb808cd565fffc8bdee4..34b937eb330a5047c06c7c6b6eeeff62923d004f 100644 --- a/controllers/tourController.js +++ b/controllers/tourController.js @@ -1,20 +1,23 @@ -const Tour = require('../models/tourModel'); +const db = require('../config/db'); -exports.getTours = async (req, res) => { - try { - const tours = await Tour.getAllTours(); - res.render('index', { tours }); - } catch (error) { - res.status(500).send('เกิดข้อผิดพลาด'); +class Tour { + static async getAllTours() { + try { + const [rows] = await db.query('SELECT * FROM tours'); + return rows; + } catch (error) { + throw error; + } } -}; -exports.getTourDetails = async (req, res) => { - try { - const tour = await Tour.getTourById(req.params.id); - if (!tour) return res.status(404).send('ไม่พบข้อมูล'); - res.render('tour-details', { tour }); - } catch (error) { - res.status(500).send('เกิดข้อผิดพลาด'); + static async getTourById(id) { + try { + const [rows] = await db.query('SELECT * FROM tours WHERE id = ?', [id]); + return rows.length > 0 ? rows[0] : null; + } catch (error) { + throw error; + } } -}; +} + +module.exports = Tour; diff --git a/routes/tourRoutes.js b/routes/tourRoutes.js index 08b172e30df637e9c49d07819a46a5d25731c8f8..de0f503a1e0ccf9ff66378d7b9ab25907aff1648 100644 --- a/routes/tourRoutes.js +++ b/routes/tourRoutes.js @@ -1,8 +1,9 @@ const express = require('express'); +const { getTours, getTourDetails } = require('../controllers/tourController'); + const router = express.Router(); -const tourController = require('../controllers/tourController'); -router.get('/', tourController.getTours); -router.get('/tour/:id', tourController.getTourDetails); +router.get('/', getTours); // แสดงรายการทัวร์ทั้งหมด +router.get('/tour/:id', getTourDetails); // แสดงรายละเอียดทัวร์ตาม id module.exports = router; diff --git a/views/index.ejs b/views/index.ejs index ee883413c5a58446dad4bcca957d60c5df2ae621..ea99f22cfdd00f32224496360cb594572afb3946 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -18,25 +18,29 @@ </header> <section class="tour-list"> - <h2>Available Tours</h2> - <ul> - <% tours.forEach(tour => { %> - <li class="tour-card"> - <a href="/tour/<%= tour.id %>"> - <div class="tour-card-img"> - <img src="<%= tour.imageUrl %>" alt="<%= tour.name %>"> - </div> - <div class="tour-card-info"> - <h3><%= tour.name %></h3> - <p><%= tour.description %></p> - <div class="price"> - <span><%= tour.price %> THB</span> + <% if (tours.length === 0) { %> + <p>No tours available at the moment. Please check back later.</p> + <% } else { %> + <ul> + <% tours.forEach(tour => { %> + <li class="tour-card"> + <a href="/tour/<%= tour.id %>"> + <div class="tour-card-img"> + <img src="<%= tour.imageUrl %>" alt="<%= tour.name %>"> </div> - </div> - </a> - </li> - <% }) %> - </ul> + <div class="tour-card-info"> + <h3><%= tour.name %></h3> + <p><%= tour.description %></p> + <div class="price"> + <span><%= tour.price %> THB</span> + </div> + </div> + </a> + </li> + <% }) %> + </ul> + <% } %> + </section> <footer>