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..fb37366 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