ecommerce-express-utils
Version:
A collection of handy express utilities for ecommerce
27 lines (20 loc) • 826 B
JavaScript
const createOrder = async (model, req, res, orderItemModel, promoCodeModel) => {
try {
const orderData = { ...req.body };
if (req.customer) {
orderData.customer = req.customer._id
}
const order = await model.create(orderData);
const cartItems = orderData.cartItems
const orderItems = cartItems.map(i => i = { ...i, order: order._id })
const createdOrderItems = await orderItemModel.insertMany(orderItems)
const promoCode = orderData.promoCode
if (promoCode) {
await promoCodeModel.findOneAndUpdate({ promoCode }, { $inc: { uses: 1 } });
}
res.status(200).json({ order, createdOrderItems })
} catch (error) {
res.status(400).json({ error: error.message });
}
};
export { createOrder };