added changepassword and forgot password
This commit is contained in:
parent
035a989f29
commit
551caa59a2
@ -6,6 +6,7 @@ import password from "secure-random-password";
|
|||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
import catchAsyncErrors from "../../middlewares/catchAsyncErrors.js";
|
import catchAsyncErrors from "../../middlewares/catchAsyncErrors.js";
|
||||||
import sendToken from "../../Utils/jwtToken.js";
|
import sendToken from "../../Utils/jwtToken.js";
|
||||||
|
import ErrorHander from "../../Utils/errorhander.js";
|
||||||
|
|
||||||
export const createBusiness = async (req, res) => {
|
export const createBusiness = async (req, res) => {
|
||||||
try {
|
try {
|
||||||
@ -252,7 +253,9 @@ export const deleteBusinessById = async (req, res) => {
|
|||||||
|
|
||||||
// update password for business owner with old password
|
// update password for business owner with old password
|
||||||
export const updatePassword = catchAsyncErrors(async (req, res, next) => {
|
export const updatePassword = catchAsyncErrors(async (req, res, next) => {
|
||||||
const business = await Business.findById(req.user.id).select("+password");
|
const business = await Business.findById(req.business._id).select(
|
||||||
|
"+password"
|
||||||
|
);
|
||||||
|
|
||||||
const isPasswordMatched = await business.comparePassword(
|
const isPasswordMatched = await business.comparePassword(
|
||||||
req.body.oldPassword
|
req.body.oldPassword
|
||||||
@ -303,6 +306,58 @@ export const loginBusiness = async (req, res, next) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// forgot password for business
|
||||||
|
export const forgotPassword = async (req, res, next) => {
|
||||||
|
const business = await Business.findOne({ email: req.body.email });
|
||||||
|
|
||||||
|
if (!business) {
|
||||||
|
return res.status(404).json({ message: "business not found" });
|
||||||
|
}
|
||||||
|
// Get ResetPassword Token
|
||||||
|
//const resetToken = business.getResetPasswordToken(); //call function
|
||||||
|
|
||||||
|
//save database reset token
|
||||||
|
await business.save({ validateBeforeSave: false });
|
||||||
|
|
||||||
|
const passwords = password.randomPassword({
|
||||||
|
length: 12,
|
||||||
|
characters: [
|
||||||
|
{ characters: password.upper, exactly: 1 },
|
||||||
|
{ characters: password.symbols, exactly: 1 },
|
||||||
|
password.lower,
|
||||||
|
password.digits,
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
business.password = passwords;
|
||||||
|
await business.save();
|
||||||
|
// const message = `Your password reset token are :- \n\n ${resetPasswordUrl} \n\nyour new password is:${password}\n\nIf you have not requested this email then, please ignore it.`;
|
||||||
|
try {
|
||||||
|
await sendEmail({
|
||||||
|
to: `${business.email}`, // Change to your recipient
|
||||||
|
|
||||||
|
from: `${process.env.SEND_EMAIL_FROM}`, // Change to your verified sender
|
||||||
|
|
||||||
|
subject: `Bolo Ai Password Recovery`,
|
||||||
|
html: `your new password is: <br/> <strong> ${passwords}</strong><br/><br/>If you have not requested this email then, please ignore it.`,
|
||||||
|
});
|
||||||
|
|
||||||
|
res.status(200).json({
|
||||||
|
success: true,
|
||||||
|
message: `Email sent to ${business.email} successfully`,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
business.resetPasswordToken = undefined;
|
||||||
|
business.resetPasswordExpire = undefined;
|
||||||
|
|
||||||
|
await business.save({ validateBeforeSave: false });
|
||||||
|
|
||||||
|
return res
|
||||||
|
.status(500)
|
||||||
|
.json({ message: "Something went wrong!", error: error?.message || "" });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/****************************************** */
|
/****************************************** */
|
||||||
|
|
||||||
const addBusiness = async (req, res) => {
|
const addBusiness = async (req, res) => {
|
||||||
|
@ -13,6 +13,7 @@ import {
|
|||||||
updatePassword,
|
updatePassword,
|
||||||
getSelfBusiness,
|
getSelfBusiness,
|
||||||
loginBusiness,
|
loginBusiness,
|
||||||
|
forgotPassword,
|
||||||
} from "./BusinessController.js";
|
} from "./BusinessController.js";
|
||||||
|
|
||||||
const router = Router();
|
const router = Router();
|
||||||
@ -33,6 +34,10 @@ router.route("/getselfbusiness").get(isBusinessAuthenticated, getSelfBusiness);
|
|||||||
|
|
||||||
//auth routes
|
//auth routes
|
||||||
router.route("/login").post(loginBusiness);
|
router.route("/login").post(loginBusiness);
|
||||||
router.route("/password/update").patch(isAuthenticatedUser, updatePassword);
|
router.route("/password/update").patch(isBusinessAuthenticated, updatePassword);
|
||||||
|
|
||||||
|
router.route("/password/forgot").post(forgotPassword);
|
||||||
|
|
||||||
|
//outer.route("/password/reset/:token").put(resetPassword);
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
Loading…
Reference in New Issue
Block a user