const Tour = require('../models/tourModel'); exports.getTours = async (req, res) => { try { const tours = await Tour.getAllTours(); res.render('index', { tours }); } catch (error) { res.status(500).send('เกิดข้อผิดพลาด'); } }; 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('เกิดข้อผิดพลาด'); } }; const User = require('../models/tourModel'); exports.getLogin = (req, res) => { res.render('login', { message: null }); }; exports.getRegister = (req, res) => { res.render('register', { message: null }); }; exports.postRegister = async (req, res) => { const { name, email, password, confirmPassword } = req.body; if (password !== confirmPassword) { return res.render('register', { message: 'Passwords do not match' }); } try { const existingUser = await User.findOne(email); if (existingUser) { return res.render('register', { message: 'Email already in use' }); } const userId = await User.create(name, email, password); req.session.userId = userId; res.redirect('/login'); } catch (err) { console.error(err); res.render('register', { message: 'Error creating user' }); } }; exports.postLogin = async (req, res) => { const { email, password } = req.body; try { const isMatch = await User.comparePassword(email, password); if (!isMatch) { return res.render('login', { message: 'Invalid email or password' }); } req.session.userId = email; res.redirect('/'); } catch (err) { console.error(err); res.render('login', { message: 'Error logging in' }); } }; exports.logout = (req, res) => { req.session.destroy(() => { res.redirect('/login'); }); };