Gitlab@Informatics

Skip to content
Snippets Groups Projects
Select Git revision
  • f1dad24998aaf95a3aa9efbd366f52831a78436a
  • main default protected
2 results

tourController.js

Blame
  • 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