Gitlab@Informatics

Skip to content
Snippets Groups Projects
Select Git revision
1 result Searching

productController.js

Blame
  • productController.js 1.66 KiB
    const pool = require('../db');
    
    exports.showAddProductForm = (req, res) => {
       res.render('addProduct');
    };
    
    exports.createProduct = async (req, res) => {
        const { product_name, price, image, description } = req.body;
        const owner = req.session.userIdEmail; // เราต้องเก็บ email ตอน login ด้วยนะครับ
        try {
           const sql = 'INSERT INTO products (product_name, price, image, description, owner) VALUES (?, ?, ?, ?, ?)';
           await pool.query(sql, [product_name, price, image, description, owner]);
           res.redirect('/');
        } catch (err) {
           res.status(500).send('เกิดข้อผิดพลาดในการเพิ่มสินค้า: ' + err.message);
        }
     };
    
     exports.deleteProduct = async (req, res) => {
        const productId = req.params.id;
        const currentUserEmail = req.session.userIdEmail;
        try {
          // ตรวจสอบว่าผู้ใช้นี้เป็นเจ้าของหรือไม่
          const [rows] = await pool.query('SELECT * FROM products WHERE product_id = ?', [productId]);
          if (rows.length === 0) {
            return res.status(404).send('ไม่พบสินค้านี้');
          }
          const product = rows[0];
          if (product.owner !== currentUserEmail) {
            return res.status(403).send('คุณไม่มีสิทธิ์ลบสินค้านี้');
          }
      
          // ลบสินค้าได้
          await pool.query('DELETE FROM products WHERE product_id = ?', [productId]);
          res.redirect('/');
        } catch (err) {
          res.status(500).send('Database error: ' + err.message);
        }
      };