diff --git a/app.js b/app.js index c081f70..ffcfaee 100644 --- a/app.js +++ b/app.js @@ -6,6 +6,7 @@ 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 port=process.env.PORT || 5000; const cors = require('cors') ; @@ -75,7 +76,7 @@ require('./models/Coupon') // req.logout() ; // res.redirect('/') ; // }) -app.use(require('./routes/Coupon')) + app.use(authRoute) ; app.use(profileRoute) ; @@ -86,6 +87,7 @@ app.use(courseRoute) ; app.use(adminRoute) ; +app.use(couponRoute) ; mongoose.connect(MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true ,useFindAndModify:false}). then(result => { diff --git a/controllers/coupon.js b/controllers/coupon.js new file mode 100644 index 0000000..2220624 --- /dev/null +++ b/controllers/coupon.js @@ -0,0 +1,64 @@ +const Coupon = require("../models/Coupon"); + +module.exports.getAllCoupons = async (req , res , next) => { + try + { + const coupons = await Coupon.find() ; + console.log(coupons) ; + res.json({ + coupons : coupons + }) ; + } + catch(err) + { + console.log(err) ; + } +} + +module.exports.addCoupon = async (req , res , next) => { + try + { + const couponCode = req.body.couponCode ; + const percentage = req.body.percentage ; + const numAllowed = req.body.numAllowed ; + + let coupon = await Coupon.findOne({couponCode : couponCode}) ; + if(coupon) + { + res.json({ + error:"coupon already Exist" + }) + } + else + { + let coupon = new Coupon({ + couponCode : couponCode , + percentage : percentage , + numAllowed : numAllowed + }) ; + coupon = await coupon.save() ; + res.json({ + message: "Created Successfully" + }) + } + } + catch(err) + { + console.log(err); + } +} + +module.exports.deleteCoupon = async (req , res, next) => { + try + { + const couponCode = req.body.couponCode ; + await Coupon.deleteOne({couponCode : couponCode}) ; + res.json({ + message: "Deleted Successfully" + }) + } + catch(err) + { + console.log(err); + } +} \ No newline at end of file diff --git a/models/Coupon.js b/models/Coupon.js index e69ad70..fc50617 100644 --- a/models/Coupon.js +++ b/models/Coupon.js @@ -1,11 +1,17 @@ const mongoose=require('mongoose') const CouponSchema=new mongoose.Schema({ - coupon_code:{ - type:String + couponCode:{ + type:String, + required:true }, percentage:{ - type:String + 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) ; \ No newline at end of file diff --git a/routes/Coupon.js b/routes/Coupon.js index 7813150..e44e90c 100644 --- a/routes/Coupon.js +++ b/routes/Coupon.js @@ -1,48 +1,15 @@ const express = require("express"); +const couponController = require('../controllers/coupon') ; + +const isAuth = require('../middleware/requirelogin') ; +const isAdmin = require('../middleware/isAdmin') ; + const router = express.Router(); -const mongoose = require("mongoose"); -const Coupon = mongoose.model("Coupon"); -router.get("/get-coupon", (req, res) => { - Coupon.find().then((result) => { - res.status(200).json({ coupon: result }); - console.log(result); - }); -}); +router.get("/getAllCoupons",isAuth , isAdmin , couponController.getAllCoupons); -router.post("/set-coupon", (req, res) => { - const { percentage, coupon_code } = req.body; - const coupon = new Coupon({ - coupon_code, - percentage, - }); - coupon.save().then((result) => { - res.status(200).json({ message: "Coupon set Successfully" }); - }); -}); +router.post("/addCoupon", isAuth , isAdmin ,couponController.addCoupon); -router.delete("/delete-coupon", (req, res) => { - Coupon.remove({ _id: req.body.id }).then((result) => { - res.status(200).json({ message: "Coupon Deleted" }); - }); -}); - -router.put("/update-coupon", (req, res) => { - const {coupon_code,percentage} =req.body; - Coupon.findByIdAndUpdate( - req.body._id, - { - $set: { - coupon_code,percentage - } - }, - { new: true }) - .then((result) => { - res.status(200).json({ message: result }); - }) - .catch((err) => { - console.log(err); - }); -}); +router.post("/deleteCoupon", isAuth , isAdmin ,couponController.deleteCoupon); module.exports = router;