diff --git a/controllers/vendorController.js b/controllers/vendorController.js index 5f22515..37c64d4 100644 --- a/controllers/vendorController.js +++ b/controllers/vendorController.js @@ -281,10 +281,81 @@ const updateAvailablity = asyncHandler(async (req, res) => { res.status(200).json(updatedItem); }); +const createDiscount = asyncHandler(async (req, res) => { + const { + item_id, + offer_price + } = req.body + + console.log(item_id) + + const {vendor_id} = req; + + const item = await MenuItem.findOne({ item_id: item_id }); + + + if(!item){ + res.status(404).send("Item not found"); + } + + const menu = await Menu.findOne({vendor_id: vendor_id}); + + if(!menu){ + res.status(404).send("menu not found"); + } + + const menuIndex = menu.items.findIndex(item => item.item_id === item_id); + + if(menuIndex == -1){ + res.status(404).send("Item not found in the menu"); + } + + menu.items[menuIndex].on_offer = true; + menu.items[menuIndex].offer_price = offer_price; + await menu.save(); + + const updatedItem = await MenuItem.findOneAndUpdate( + { item_id: item_id }, + { on_offer: true, offer_price: offer_price }, + ) + res.status(200).send(updatedItem) +}) + +const deleteDiscount = asyncHandler(async (req, res) => { + const { item_id } = req.body + + const {vendor_id} = req + + const item = await MenuItem.findOne({ item_id: item_id }); + if(!item){ + res.status(404).send("Item not found"); + } + + const menu = await Menu.findOne({vendor_id: vendor_id}); + + if(!menu){ + res.status(404).send("menu not found"); + } + + const menuIndex = menu.items.findIndex(item => item.item_id === item_id); + menu.items[menuIndex].on_offer = false; + menu.items[menuIndex].offer_price = 0; + await menu.save(); + + const updatedItem = await MenuItem.findOneAndUpdate( + { item_id: item_id }, + { on_offer: false, offer_price: 0 }, + ) + + res.status(200).send(updatedItem) +}) + module.exports = { addItem, updateItem, deleteItem, updateAvailablity, getAllItems, + createDiscount, + deleteDiscount }; diff --git a/routes/vendorRoutes.js b/routes/vendorRoutes.js index 3897a84..dd14efc 100644 --- a/routes/vendorRoutes.js +++ b/routes/vendorRoutes.js @@ -5,6 +5,8 @@ const { deleteItem, updateAvailablity, getAllItems, + createDiscount, + deleteDiscount, } = require("../controllers/vendorController"); const extractTokenMiddleware = require("../middleware/authMiddleware"); @@ -21,4 +23,9 @@ router.delete("/menuitems",extractTokenMiddleware, deleteItem); router.put("/updatequantity",extractTokenMiddleware, updateAvailablity); +router.post("/discount", extractTokenMiddleware, createDiscount); + +router.delete("/discount", extractTokenMiddleware, deleteDiscount); + + module.exports = router;