UNPKG

ecommerce-express-utils

Version:

A collection of handy express utilities for ecommerce

41 lines (33 loc) 1.39 kB
const getPromoCode = async (model, req, res, orderModel) => { try { const { promoCode } = req.params; const promotion = await model.findOne({ promoCode }); if (!promotion || promotion.uses >= promotion.maxlimit) { return res.status(400).json({ message: 'This promo code does not exist or has reached its usage limit', }); } const currentDate = new Date(); const validStartDate = new Date(promotion.validStartDate); const validEndDate = new Date(promotion.validEndDate); if (currentDate < validStartDate || currentDate > validEndDate) { return res.status(400).json({ message: 'This promo code is not valid at the moment', }); } if (promotion.promoType === 'unlimited') { return res.status(200).json(promotion); } let checkPromoCode; if (promotion.promoType === 'oneTime') { checkPromoCode = await orderModel.find({ customer: req.customer._id, promoCode, }); } if (checkPromoCode.length > 0) { return res.status(400).json({ message: 'This promo code has already been used' }); } else { res.status(200).json(promotion); } } catch (error) { res.status(400).json({ error: error.message }); } }; export { getPromoCode };