From 8cea406ce5937be5b922b7e67a12f12a36475c05 Mon Sep 17 00:00:00 2001 From: Tushar Date: Tue, 9 Apr 2024 23:23:18 +0530 Subject: [PATCH 1/3] feat: add discount --- controllers/vendorController.js | 36 +++++++++++++++++++++++++++++++++ routes/vendorRoutes.js | 7 +++++++ 2 files changed, 43 insertions(+) diff --git a/controllers/vendorController.js b/controllers/vendorController.js index 5f22515..2057315 100644 --- a/controllers/vendorController.js +++ b/controllers/vendorController.js @@ -281,10 +281,46 @@ const updateAvailablity = asyncHandler(async (req, res) => { res.status(200).json(updatedItem); }); +const createDiscount = asyncHandler(async (req, res) => { + const { + item_id, + offer_price + } = req.body + const item = await MenuItem.findOne({ item_id: item_id }); + + if(!item){ + res.status(404).send("Item not found"); + } + + const updatedItem = await MenuItem.findOneAndUpdate( + { _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 item = await MenuItem.findOne({ item_id: item_id }); + if(!item){ + res.status(404).send("Item not found"); + } + + const updatedItem = await MenuItem.findOneAndUpdate( + { _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; From 4715264801407afc2f1ac15f14d1924258a2d5fe Mon Sep 17 00:00:00 2001 From: Tushar Date: Tue, 9 Apr 2024 23:31:56 +0530 Subject: [PATCH 2/3] fix: update menu --- controllers/vendorController.js | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/controllers/vendorController.js b/controllers/vendorController.js index 2057315..8b3f7ca 100644 --- a/controllers/vendorController.js +++ b/controllers/vendorController.js @@ -286,14 +286,29 @@ const createDiscount = asyncHandler(async (req, res) => { item_id, offer_price } = 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 = true; + menu.items[menuIndex].offer_price = offer_price; + await menu.save(); + const updatedItem = await MenuItem.findOneAndUpdate( - { _id: item_id }, + { item_id: item_id }, { on_offer: true, offer_price: offer_price }, ) res.status(200).send(updatedItem) @@ -307,8 +322,19 @@ const deleteDiscount = asyncHandler(async (req, res) => { 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( - { _id: item_id }, + { item_id: item_id }, { on_offer: false, offer_price: 0 }, ) From 53785ff100bd8b6ac2d8f4e5b51f2f726760703a Mon Sep 17 00:00:00 2001 From: Tushar Date: Tue, 9 Apr 2024 23:45:59 +0530 Subject: [PATCH 3/3] fix: minot --- controllers/vendorController.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/controllers/vendorController.js b/controllers/vendorController.js index 8b3f7ca..37c64d4 100644 --- a/controllers/vendorController.js +++ b/controllers/vendorController.js @@ -287,6 +287,8 @@ const createDiscount = asyncHandler(async (req, res) => { offer_price } = req.body + console.log(item_id) + const {vendor_id} = req; const item = await MenuItem.findOne({ item_id: item_id }); @@ -303,6 +305,11 @@ const createDiscount = asyncHandler(async (req, res) => { } 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(); @@ -315,7 +322,9 @@ const createDiscount = asyncHandler(async (req, res) => { }) const deleteDiscount = asyncHandler(async (req, res) => { - const item_id = req.body + const { item_id } = req.body + + const {vendor_id} = req const item = await MenuItem.findOne({ item_id: item_id }); if(!item){