Skip to content
Snippets Groups Projects
Commit 0c68bcf0 authored by alrwasheda's avatar alrwasheda :speech_balloon:
Browse files

updateAccountById controller

parent 40d695b2
No related branches found
No related tags found
No related merge requests found
...@@ -64,7 +64,7 @@ const showAllAccounts = async (req: Request, res: Response) => { ...@@ -64,7 +64,7 @@ const showAllAccounts = async (req: Request, res: Response) => {
} }
}; };
//show a specific account using given id: email is the primary key for a worker //show a specific account using given id: email is the primary key for a worker
const showAccountById = async (req: Request, res: Response) => { const showAccountById = async (req: Request, res: Response) => {
try { try {
if (!(res.locals.user.role === "coordinator")) { if (!(res.locals.user.role === "coordinator")) {
...@@ -83,10 +83,51 @@ const showAccountById = async (req: Request, res: Response) => { ...@@ -83,10 +83,51 @@ const showAccountById = async (req: Request, res: Response) => {
return res.status(500).json({ success: false, error: "serverError" }); return res.status(500).json({ success: false, error: "serverError" });
} }
}; };
//update account by id
const updateAccount = async (req: Request, res: Response) => {
try {
if (!(res.locals.user.role === "coordinator")) {
return res
.status(403)
.json({ success: false, error: "MustBeCoordinator" });
}
//take what ever in req.body is, and pass it to update()
const input = req.body; //camelCase json
let givenId = req.params.id;
//if given id not found
const worker = await Worker.findByPk(givenId);
if (!worker) {
return res.status(404).json({ success: false, error: "accountNotFound" });
}
//update worker
await Worker.update(input, {
where: {
email: givenId, //primary key in worker is email
},
});
if (req.body.email !== "undefined") {
//if email was given in req.body -> update givenId (with new email) to find the updatedAccount and send its new data back
givenId = req.body.email;
}
const updatedWorker = await Worker.findByPk(givenId);
return res.status(200).json({ success: true, result: updatedWorker });
} catch (error) {
console.error("server error: ", error.message);
return res.status(500).json({ success: false, error: "serverError" });
}
};
const accountsControllers = { const accountsControllers = {
createAccountController, createAccountController,
showAllAccounts, showAllAccounts,
showAccountById, showAccountById,
updateAccount,
}; };
export default accountsControllers; export default accountsControllers;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment