diff --git a/app.js b/app.js index ca5c804..217a4fa 100644 --- a/app.js +++ b/app.js @@ -1,4 +1,3 @@ - const express = require("express"); const mongoose = require("mongoose"); const bodyparser = require("body-parser"); @@ -6,25 +5,13 @@ const authRoute = require("./routes/auth"); const profileRoute = require("./routes/profile"); const paymentRoute = require("./routes/payment"); const courseRoute = require("./routes/course"); +const couponRoute = require("./routes/Coupon"); +const queryRoute = require("./routes/query"); const adminRoute = require("./routes/admin"); const port = process.env.PORT || 5000; 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 cookieSession = require('cookie-session') ; //require('./passport-setup') ; @@ -90,18 +77,6 @@ require("./models/Coupon"); // req.logout() ; // res.redirect('/') ; // }) - -app.use(require("./routes/Coupon")); -app.use(authRoute); - -app.use(profileRoute); - -app.use(paymentRoute); - -app.use(courseRoute); - -app.use(adminRoute); - mongoose .connect(MONGO_URI, { useNewUrlParser: true, @@ -115,29 +90,18 @@ mongoose }); }) .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); }); +app.use(authRoute); + +app.use(profileRoute); + +app.use(paymentRoute); + +app.use(courseRoute); + +app.use(adminRoute); + +app.use(couponRoute); + +app.use(queryRoute); diff --git a/controllers/auth.js b/controllers/auth.js index 70fab0a..2b72670 100644 --- a/controllers/auth.js +++ b/controllers/auth.js @@ -126,56 +126,76 @@ module.exports.getOTP = (req, res, next) => { }; module.exports.forgotpassword = async (req, res, next) => { const { email, link } = req.body; //link = https://cantileverlabs.herokuapp.com/resetpassword/:id/:token - User.findOne({ email }) - .then((result) => { - if (!result) { + try { + await User.findOne({ email }).then((user) => { + console.log("user before", user); + if (!user) { res.status(404).json({ error: "User not found with this Email" }); return; } else { const payload = { - email: result.email, - _id: result._id, + email: user.email, + _id: user._id, }; - const secret = JWT_secret + result.password; + const secret = JWT_secret + user.password; const token = jwt.sign(payload, secret, { expiresIn: "10m" }); - const user_token = new User({ - passwordResetToken: token, - }); - user_token.save(); - const reset_link = `${link}/${result._id}/${token}`; - res - .status(200) - .json({ reset_link, message: "link is active for 10 mins" }); + User.findByIdAndUpdate(user._id, { + $set: { passwordResetToken: token }, + }) + .then((data) => { + const reset_link = `${link}/${user._id}/${token}`; + res.status(200).json({ + message: "Token Saved and 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. }; module.exports.resetpassword = async (req, res, next) => { const { _id, token } = req.params; const { password } = req.body; - await User.findById({ _id }).then((result) => { - if (result) { - const secret = JWT_secret + result.password; - const user_token = User.findOne({ - passwordResetToken: result.passwordResetToken, - }); + try { + let user = await User.findById({ _id }); + if (!user) { + res.json({ error: "User not Found or WrongId" }); + return; + } else { + const secret = JWT_secret + user.password; + const user_token = user.passwordResetToken; const payload = jwt.verify(token, secret); + const hashedPass = await bcrypt.hash(password, 12); if (token == user_token) { - User.findByIdAndUpdate(_id, { $set: { password } }) - .then((data) => { + user.password = hashedPass; + await user + .save() + .then((ok) => { res.json({ message: "Password Updated!" }); }) .catch((err) => { - console.log(err); + console.log("Error in save", err); }); } 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) => { diff --git a/models/Coupon.js b/models/Coupon.js index 20e4fb9..08963e3 100644 --- a/models/Coupon.js +++ b/models/Coupon.js @@ -1,29 +1,21 @@ -const mongoose=require('mongoose') -const CouponSchema=new mongoose.Schema({ +const mongoose = require("mongoose"); +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:{ - - 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) ; \ No newline at end of file +module.exports = mongoose.model("Coupon", CouponSchema); diff --git a/routes/Coupon.js b/routes/Coupon.js index 7241a15..dc53f24 100644 --- a/routes/Coupon.js +++ b/routes/Coupon.js @@ -1,33 +1,30 @@ const express = require("express"); -const couponController = require('../controllers/coupon') ; +const couponController = require("../controllers/coupon"); -const isAuth = require('../middleware/requirelogin') ; -const isAdmin = require('../middleware/isAdmin') ; +const isAuth = require("../middleware/requirelogin"); +const isAdmin = require("../middleware/isAdmin"); const router = express.Router(); - router.post("/set-coupon", (req, res) => { - const { percentage, coupon_code ,remainingTimes} = req.body; - if(!coupon_code || !percentage || !remainingTimes){ - return res.status(422).json({error:"Add all fields"}) - }else{ + const { percentage, coupon_code, remainingTimes } = req.body; + if (!coupon_code || !percentage || !remainingTimes) { + return res.status(422).json({ error: "Add all fields" }); + } else { const coupon = new Coupon({ - coupon_code, - percentage, - remainingTimes - }); - coupon.save().then((result) => { - res.status(200).json({ message: "Coupon set Successfully" }); - }); + coupon_code, + percentage, + remainingTimes, + }); + coupon.save().then((result) => { + 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;