1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| const express = require('express');
const router = express.Router();
const auth = require('../middleware/auth');
const User = require('../models/User');
const Product = require('../models/Product');
// Get cart (with product details)
router.get('/', auth, async (req, res) => {
const user = await User.findById(req.user.id).populate('cart.product');
res.json(user.cart);
});
// Add to cart
router.post('/add', auth, async (req, res) => {
const { productId, quantity } = req.body;
const user = await User.findById(req.user.id);
const existingItem = user.cart.find(item => item.product.toString() === productId);
if (existingItem) {
existingItem.quantity += quantity;
} else {
user.cart.push({ product: productId, quantity });
}
await user.save();
res.json({ msg: 'Product added to cart' });
});
// Remove from cart
router.post('/remove', auth, async (req, res) => {
const { productId } = req.body;
const user = await User.findById(req.user.id);
user.cart = user.cart.filter(item => item.product.toString() !== productId);
await user.save();
res.json({ msg: 'Product removed from cart' });
});
|