Select Git revision
tourController.js
tourController.js 7.55 KiB
const { User, Tour } = require('../models/tourModel');
const pool = require('../config/database');
exports.getTours = async (req, res) => {
try {
const tours = await Tour.getAllTours();
res.render('index', { tours,session: req.session });
} catch (error) {
res.status(500).send(error.message);
}
};
exports.getTourDetails = async (req, res) => {
try {
const tour = await Tour.getTourById(req.params.id);
res.render('tour-details', { tour });
} catch (error) {
res.status(500).send(error.message);
}
};
//User//
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 user = await User.findOne(email); // หาผู้ใช้จากฐานข้อมูล
if (!user) {
return res.render('login', { message: 'Invalid email or password' });
}
const isMatch = await User.comparePassword(email, password); // ตรวจสอบรหัสผ่าน
if (!isMatch) {
return res.render('login', { message: 'Invalid email or password' });
}
req.session.userId = user.email; // เก็บ email ใน session
req.session.userName = user.name; // เก็บชื่อผู้ใช้ใน session
res.redirect('/'); // เมื่อ login สำเร็จให้ไปหน้า home