From 28f6a6039c6e64e5ba6589d18081522b93dd3e5f Mon Sep 17 00:00:00 2001 From: Abhishek Goyal Date: Wed, 20 Sep 2023 16:44:09 +0530 Subject: [PATCH 1/3] 262-Created-endpoint-for-Module --- controller/module.js | 31 +++++++++++++++++++++++++++++-- routes/module.js | 2 ++ services/module.js | 16 ++++++++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/controller/module.js b/controller/module.js index 7ef54fb..d455bf8 100644 --- a/controller/module.js +++ b/controller/module.js @@ -1,4 +1,4 @@ -import { getModule, addNewModule } from "#services/module"; +import { getModule, addNewModule, updateModuleById, deleteModuleById } from "#services/module"; import { logger } from "#util"; async function showModule(req, res) { @@ -33,6 +33,33 @@ async function addModule(req, res) { } } +async function updateModule(req, res) { + const { id } = req.params; + const { + ...data + } = req.body; + try { + await updateModuleById(id, data); + res.json({ res: `updated Module with id ${id}` }); + } catch (error) { + logger.error("Error while updating", error); + res.status(500); + res.json({ err: "Error while updaing in DB" }); + } +} + +async function deleteModule(req, res) { + const { id } = req.params; + try { + await deleteModuleById(id); + + res.json({ res: `Deleted Module with id ${id}` }); + } catch (error) { + logger.error("Error while deleting", error); + res.status(500).json({ error: "Error while deleting from DB" }); + } +} + export default { - showModule, addModule, + showModule, addModule, updateModule, deleteModule, }; diff --git a/routes/module.js b/routes/module.js index 006e330..00f9e30 100644 --- a/routes/module.js +++ b/routes/module.js @@ -5,5 +5,7 @@ const router = express.Router(); router.get("/list", moduleController.showModule); router.post("/add", moduleController.addModule); +router.post("/update:Id",moduleController.updateModule); +router.delete("/delete:Id",moduleController.deleteModule); export default router; diff --git a/services/module.js b/services/module.js index 9cbe676..c6cda89 100644 --- a/services/module.js +++ b/services/module.js @@ -18,3 +18,19 @@ export async function addNewModule(no, name, outcome, contents, hrsPerModule, co } throw new databaseError.DataEntryError("Add Module"); } + +export async function updateModuleById(id,data) { + const updated = await Module.update({_id: id}, data); + if (updated) { + return updated; + } + throw new databaseError.DataEntryError("Module") +} + +export async function deleteModuleById(ModuleId) { + const deleted = await Module.remove({ _id: ModuleId }); + if (deleted) { + return deleted; + } + throw new databaseError.DataDeleteError("Module") +} \ No newline at end of file From 72e4e9df29d5ed463914d859ff8a82a85ff3cfa7 Mon Sep 17 00:00:00 2001 From: Abhishek Goyal Date: Sat, 30 Sep 2023 21:39:33 +0530 Subject: [PATCH 2/3] Added slash in the routes/module.js --- routes/module.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routes/module.js b/routes/module.js index 00f9e30..c4e19f4 100644 --- a/routes/module.js +++ b/routes/module.js @@ -5,7 +5,7 @@ const router = express.Router(); router.get("/list", moduleController.showModule); router.post("/add", moduleController.addModule); -router.post("/update:Id",moduleController.updateModule); -router.delete("/delete:Id",moduleController.deleteModule); +router.post("/update/:Id",moduleController.updateModule); +router.delete("/delete/:Id",moduleController.deleteModule); export default router; From d088334b7b807acc89797a69570d6c637198b672 Mon Sep 17 00:00:00 2001 From: Tejas Nair <85873779+TejasNair9977@users.noreply.github.com> Date: Sat, 30 Sep 2023 22:22:03 +0530 Subject: [PATCH 3/3] fixed routing for module.js --- routes/module.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routes/module.js b/routes/module.js index c4e19f4..fb37366 100644 --- a/routes/module.js +++ b/routes/module.js @@ -5,7 +5,7 @@ const router = express.Router(); router.get("/list", moduleController.showModule); router.post("/add", moduleController.addModule); -router.post("/update/:Id",moduleController.updateModule); -router.delete("/delete/:Id",moduleController.deleteModule); +router.post("/update/:id",moduleController.updateModule); +router.delete("/delete/:id",moduleController.deleteModule); export default router;