Added forgot pass
This commit is contained in:
parent
1a53c17cb1
commit
f9a018de8d
66
app.js
66
app.js
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
const express = require("express");
|
const express = require("express");
|
||||||
const mongoose = require("mongoose");
|
const mongoose = require("mongoose");
|
||||||
const bodyparser = require("body-parser");
|
const bodyparser = require("body-parser");
|
||||||
|
@ -6,25 +5,13 @@ const authRoute = require("./routes/auth");
|
||||||
const profileRoute = require("./routes/profile");
|
const profileRoute = require("./routes/profile");
|
||||||
const paymentRoute = require("./routes/payment");
|
const paymentRoute = require("./routes/payment");
|
||||||
const courseRoute = require("./routes/course");
|
const courseRoute = require("./routes/course");
|
||||||
|
const couponRoute = require("./routes/Coupon");
|
||||||
|
const queryRoute = require("./routes/query");
|
||||||
const adminRoute = require("./routes/admin");
|
const adminRoute = require("./routes/admin");
|
||||||
const port = process.env.PORT || 5000;
|
const port = process.env.PORT || 5000;
|
||||||
|
|
||||||
const cors = require("cors");
|
const cors = require("cors");
|
||||||
|
|
||||||
const express = require('express') ;
|
|
||||||
const mongoose = require('mongoose') ;
|
|
||||||
const bodyparser = require('body-parser') ;
|
|
||||||
const authRoute = require('./routes/auth') ;
|
|
||||||
const profileRoute = require('./routes/profile') ;
|
|
||||||
const paymentRoute = require('./routes/payment') ;
|
|
||||||
const courseRoute = require('./routes/course') ;
|
|
||||||
const adminRoute = require('./routes/admin') ;
|
|
||||||
const couponRoute = require('./routes/Coupon') ;
|
|
||||||
const queryRoute = require('./routes/query') ;
|
|
||||||
const port=process.env.PORT || 5000;
|
|
||||||
|
|
||||||
const cors = require('cors') ;
|
|
||||||
|
|
||||||
//const passport = require('passport');
|
//const passport = require('passport');
|
||||||
//const cookieSession = require('cookie-session') ;
|
//const cookieSession = require('cookie-session') ;
|
||||||
//require('./passport-setup') ;
|
//require('./passport-setup') ;
|
||||||
|
@ -90,18 +77,6 @@ require("./models/Coupon");
|
||||||
// req.logout() ;
|
// req.logout() ;
|
||||||
// res.redirect('/') ;
|
// res.redirect('/') ;
|
||||||
// })
|
// })
|
||||||
|
|
||||||
app.use(require("./routes/Coupon"));
|
|
||||||
app.use(authRoute);
|
|
||||||
|
|
||||||
app.use(profileRoute);
|
|
||||||
|
|
||||||
app.use(paymentRoute);
|
|
||||||
|
|
||||||
app.use(courseRoute);
|
|
||||||
|
|
||||||
app.use(adminRoute);
|
|
||||||
|
|
||||||
mongoose
|
mongoose
|
||||||
.connect(MONGO_URI, {
|
.connect(MONGO_URI, {
|
||||||
useNewUrlParser: true,
|
useNewUrlParser: true,
|
||||||
|
@ -115,29 +90,18 @@ mongoose
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
|
||||||
|
|
||||||
app.use(authRoute) ;
|
|
||||||
|
|
||||||
app.use(profileRoute) ;
|
|
||||||
|
|
||||||
app.use(paymentRoute) ;
|
|
||||||
|
|
||||||
app.use(courseRoute) ;
|
|
||||||
|
|
||||||
app.use(adminRoute) ;
|
|
||||||
|
|
||||||
app.use(couponRoute) ;
|
|
||||||
|
|
||||||
app.use(queryRoute) ;
|
|
||||||
|
|
||||||
mongoose.connect(MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true ,useFindAndModify:false}).
|
|
||||||
then(result => {
|
|
||||||
console.log('connected');
|
|
||||||
app.listen(port,()=>{
|
|
||||||
console.log("server is running on port",port);
|
|
||||||
}) ;
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
console.log(err);
|
console.log(err);
|
||||||
});
|
});
|
||||||
|
app.use(authRoute);
|
||||||
|
|
||||||
|
app.use(profileRoute);
|
||||||
|
|
||||||
|
app.use(paymentRoute);
|
||||||
|
|
||||||
|
app.use(courseRoute);
|
||||||
|
|
||||||
|
app.use(adminRoute);
|
||||||
|
|
||||||
|
app.use(couponRoute);
|
||||||
|
|
||||||
|
app.use(queryRoute);
|
||||||
|
|
|
@ -126,56 +126,76 @@ module.exports.getOTP = (req, res, next) => {
|
||||||
};
|
};
|
||||||
module.exports.forgotpassword = async (req, res, next) => {
|
module.exports.forgotpassword = async (req, res, next) => {
|
||||||
const { email, link } = req.body; //link = https://cantileverlabs.herokuapp.com/resetpassword/:id/:token
|
const { email, link } = req.body; //link = https://cantileverlabs.herokuapp.com/resetpassword/:id/:token
|
||||||
User.findOne({ email })
|
try {
|
||||||
.then((result) => {
|
await User.findOne({ email }).then((user) => {
|
||||||
if (!result) {
|
console.log("user before", user);
|
||||||
|
if (!user) {
|
||||||
res.status(404).json({ error: "User not found with this Email" });
|
res.status(404).json({ error: "User not found with this Email" });
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
const payload = {
|
const payload = {
|
||||||
email: result.email,
|
email: user.email,
|
||||||
_id: result._id,
|
_id: user._id,
|
||||||
};
|
};
|
||||||
const secret = JWT_secret + result.password;
|
const secret = JWT_secret + user.password;
|
||||||
const token = jwt.sign(payload, secret, { expiresIn: "10m" });
|
const token = jwt.sign(payload, secret, { expiresIn: "10m" });
|
||||||
const user_token = new User({
|
User.findByIdAndUpdate(user._id, {
|
||||||
passwordResetToken: token,
|
$set: { passwordResetToken: token },
|
||||||
});
|
})
|
||||||
user_token.save();
|
.then((data) => {
|
||||||
const reset_link = `${link}/${result._id}/${token}`;
|
const reset_link = `${link}/${user._id}/${token}`;
|
||||||
res
|
res.status(200).json({
|
||||||
.status(200)
|
message: "Token Saved and link is active for 10 mins",
|
||||||
.json({ reset_link, message: "link is active for 10 mins" });
|
reset_link,
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log("user after", user);
|
||||||
}
|
}
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
console.log(err);
|
|
||||||
});
|
});
|
||||||
|
} catch {
|
||||||
|
(error) => {
|
||||||
|
console.log("Error from forgot pass", error);
|
||||||
|
};
|
||||||
|
}
|
||||||
//verify email then set password.
|
//verify email then set password.
|
||||||
};
|
};
|
||||||
module.exports.resetpassword = async (req, res, next) => {
|
module.exports.resetpassword = async (req, res, next) => {
|
||||||
const { _id, token } = req.params;
|
const { _id, token } = req.params;
|
||||||
const { password } = req.body;
|
const { password } = req.body;
|
||||||
await User.findById({ _id }).then((result) => {
|
try {
|
||||||
if (result) {
|
let user = await User.findById({ _id });
|
||||||
const secret = JWT_secret + result.password;
|
if (!user) {
|
||||||
const user_token = User.findOne({
|
res.json({ error: "User not Found or WrongId" });
|
||||||
passwordResetToken: result.passwordResetToken,
|
return;
|
||||||
});
|
} else {
|
||||||
|
const secret = JWT_secret + user.password;
|
||||||
|
const user_token = user.passwordResetToken;
|
||||||
const payload = jwt.verify(token, secret);
|
const payload = jwt.verify(token, secret);
|
||||||
|
const hashedPass = await bcrypt.hash(password, 12);
|
||||||
if (token == user_token) {
|
if (token == user_token) {
|
||||||
User.findByIdAndUpdate(_id, { $set: { password } })
|
user.password = hashedPass;
|
||||||
.then((data) => {
|
await user
|
||||||
|
.save()
|
||||||
|
.then((ok) => {
|
||||||
res.json({ message: "Password Updated!" });
|
res.json({ message: "Password Updated!" });
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log(err);
|
console.log("Error in save", err);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
res.status(422).json({ error: "some error occured" });
|
res.status(422).json({ error: "Either Token not found or Expired!" });
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
} catch {
|
||||||
|
(err) => {
|
||||||
|
console.log("error from try catch resetpass", err);
|
||||||
|
};
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports.checkProtected = (req, res, next) => {
|
module.exports.checkProtected = (req, res, next) => {
|
||||||
|
|
|
@ -1,29 +1,21 @@
|
||||||
const mongoose=require('mongoose')
|
const mongoose = require("mongoose");
|
||||||
const CouponSchema=new mongoose.Schema({
|
const CouponSchema = new mongoose.Schema({
|
||||||
|
couponCode: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
percentage: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
remainingTimes: {
|
||||||
|
type: Number,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
numAllowed: {
|
||||||
|
type: Number,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
coupon_code:{
|
module.exports = mongoose.model("Coupon", CouponSchema);
|
||||||
|
|
||||||
couponCode:{
|
|
||||||
|
|
||||||
type:String,
|
|
||||||
required:true
|
|
||||||
},
|
|
||||||
percentage:{
|
|
||||||
|
|
||||||
type:String,
|
|
||||||
required:true
|
|
||||||
},
|
|
||||||
remainingTimes:{
|
|
||||||
type:Number
|
|
||||||
|
|
||||||
type:Number ,
|
|
||||||
required:true
|
|
||||||
},
|
|
||||||
numAllowed:{
|
|
||||||
type:Number ,
|
|
||||||
required:true
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
module.exports = mongoose.model('Coupon' , CouponSchema) ;
|
|
||||||
|
|
|
@ -1,33 +1,30 @@
|
||||||
const express = require("express");
|
const express = require("express");
|
||||||
const couponController = require('../controllers/coupon') ;
|
const couponController = require("../controllers/coupon");
|
||||||
|
|
||||||
const isAuth = require('../middleware/requirelogin') ;
|
const isAuth = require("../middleware/requirelogin");
|
||||||
const isAdmin = require('../middleware/isAdmin') ;
|
const isAdmin = require("../middleware/isAdmin");
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
|
|
||||||
router.post("/set-coupon", (req, res) => {
|
router.post("/set-coupon", (req, res) => {
|
||||||
const { percentage, coupon_code ,remainingTimes} = req.body;
|
const { percentage, coupon_code, remainingTimes } = req.body;
|
||||||
if(!coupon_code || !percentage || !remainingTimes){
|
if (!coupon_code || !percentage || !remainingTimes) {
|
||||||
return res.status(422).json({error:"Add all fields"})
|
return res.status(422).json({ error: "Add all fields" });
|
||||||
}else{
|
} else {
|
||||||
const coupon = new Coupon({
|
const coupon = new Coupon({
|
||||||
coupon_code,
|
coupon_code,
|
||||||
percentage,
|
percentage,
|
||||||
remainingTimes
|
remainingTimes,
|
||||||
});
|
});
|
||||||
coupon.save().then((result) => {
|
coupon.save().then((result) => {
|
||||||
res.status(200).json({ message: "Coupon set Successfully" });
|
res.status(200).json({ message: "Coupon set Successfully" });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
=======
|
router.get("/getAllCoupons", isAuth, isAdmin, couponController.getAllCoupons);
|
||||||
router.get("/getAllCoupons",isAuth , isAdmin , couponController.getAllCoupons);
|
|
||||||
|
|
||||||
|
router.post("/addCoupon", isAuth, isAdmin, couponController.addCoupon);
|
||||||
|
|
||||||
router.post("/addCoupon", isAuth , isAdmin ,couponController.addCoupon);
|
router.post("/deleteCoupon", isAuth, isAdmin, couponController.deleteCoupon);
|
||||||
|
|
||||||
router.post("/deleteCoupon", isAuth , isAdmin ,couponController.deleteCoupon);
|
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|
Loading…
Reference in New Issue