Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 37 additions & 1 deletion controllers/authControllers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,4 +106,40 @@ const forgotPassword = async (req: Request, res: Response, next: NextFunction) =
}
}

export { signup, login, resetPassword, forgotPassword };
const updatePassword = async (req: Request, res: Response, next: NextFunction) => {
try {
const { email, currentPassword } = req.body;
const user = await UserModel.UserSchema.findOne({ email });
if (!user) {
return res.status(httpStatus.NOT_FOUND).json({
message: "User not found. Please try again!"
})
}
if(currentPassword && !await bcrypt.compare(currentPassword, user.password)) {
return res.status(httpStatus.FORBIDDEN).json({
message: "Current password is incorrect"
})
}
if(req.body.password) {
user.password = req.body.password;
}
else {
return res.status(httpStatus.BAD_REQUEST).json({
message: "Password field is empty"
})
}
await user.save();
return res.status(httpStatus.OK).json({
user: user,
message: "Password updated successfully"
})
}
catch (err) {
return res.status(httpStatus.BAD_REQUEST).json({
message: "Something went wrong. Please try again!",
error: next(err)
});
}
}

export { signup, login, resetPassword, forgotPassword, updatePassword};
1 change: 1 addition & 0 deletions routes/authRoutes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ router.post("/login", authControllers.login);
// router.get("/logout", authControllers.logout);
router.post('/forgotPassword', authControllers.forgotPassword)
router.post('/resetPassword/:id/:resetToken', authControllers.resetPassword)
router.post('/updatePassword', authControllers.updatePassword)

export {router}