Merge branch 'main' into yashrajverma
This commit is contained in:
commit
3fdc559dcc
41
app.js
41
app.js
|
@ -1,3 +1,4 @@
|
|||
|
||||
const express = require("express");
|
||||
const mongoose = require("mongoose");
|
||||
const bodyparser = require("body-parser");
|
||||
|
@ -9,6 +10,21 @@ 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') ;
|
||||
|
@ -74,6 +90,7 @@ require("./models/Coupon");
|
|||
// req.logout() ;
|
||||
// res.redirect('/') ;
|
||||
// })
|
||||
|
||||
app.use(require("./routes/Coupon"));
|
||||
app.use(authRoute);
|
||||
|
||||
|
@ -98,5 +115,29 @@ 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);
|
||||
});
|
||||
|
|
|
@ -78,6 +78,7 @@ module.exports.postSignin = async (req, res, next) => {
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
module.exports.sendOTP = (req, res, next) => {
|
||||
//uNNYosMopvvCW9RTR1tRWJmYC test
|
||||
//llVKD53ve6QRpbCKOHzWBADaS live
|
||||
|
@ -89,6 +90,43 @@ module.exports.sendOTP = (req, res, next) => {
|
|||
} else {
|
||||
messagebird.verify.create(
|
||||
phoneNumber,
|
||||
|
||||
module.exports.postSignin = async (req , res , next) => {
|
||||
try
|
||||
{
|
||||
//we need email and password as input
|
||||
let email = req.body.email ;
|
||||
let password = req.body.password ;
|
||||
let user = await User.findOne({email : email}) ;
|
||||
if(user)
|
||||
{
|
||||
const isMatched = await bcrypt.compare(password , user.password) ;
|
||||
if(isMatched)
|
||||
{
|
||||
const token = jwt.sign({_id:user._id},JWT_secret)
|
||||
if(!user.numLoggedIn)
|
||||
{
|
||||
user.numLoggedIn = 0 ;
|
||||
}
|
||||
user.numLoggedIn = user.numLoggedIn + 1 ;
|
||||
res.json(
|
||||
{
|
||||
token:token ,
|
||||
isAdmin : user.isAdmin
|
||||
}
|
||||
)
|
||||
await user.save() ;
|
||||
}
|
||||
else
|
||||
{
|
||||
res.json({
|
||||
message:"email and password doesn't match" ,
|
||||
type:"error"
|
||||
})
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
{
|
||||
template: "Your verification code is %token",
|
||||
},
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
const Course = require('../models/Course') ;
|
||||
const CourseType = require('../models/CourseType') ;
|
||||
const User = require('../models/User') ;
|
||||
|
||||
module.exports.postAddCourse = async (req , res , next) => {
|
||||
try
|
||||
|
@ -8,6 +9,7 @@ module.exports.postAddCourse = async (req , res , next) => {
|
|||
let name = req.body.name ;
|
||||
let mentor = req.body.mentor ;
|
||||
let totalLectures = req.body.totalLectures ;
|
||||
let route = req.body.route
|
||||
if(name)
|
||||
{
|
||||
name = name.trim() ;
|
||||
|
@ -16,6 +18,10 @@ module.exports.postAddCourse = async (req , res , next) => {
|
|||
{
|
||||
mentor = mentor.trim() ;
|
||||
}
|
||||
if(route)
|
||||
{
|
||||
route = route.trim() ;
|
||||
}
|
||||
if(totalLectures)
|
||||
{
|
||||
totalLectures = Number(totalLectures) ;
|
||||
|
@ -24,7 +30,8 @@ module.exports.postAddCourse = async (req , res , next) => {
|
|||
let course = new Course({
|
||||
name : name ,
|
||||
mentor : mentor ,
|
||||
totalLectures : totalLectures
|
||||
totalLectures : totalLectures ,
|
||||
route : route
|
||||
}) ; ;
|
||||
|
||||
course = await course.save() ;
|
||||
|
@ -147,3 +154,46 @@ module.exports.getTierCourse = async (req , res , next) => {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.getFromRoute = async (req , res , next) => {
|
||||
try{
|
||||
const route = req.query.route ;
|
||||
const course = await Course.findOne({route :route}).populate("types.tier1").populate("types.tier2").populate("types.tier3") ;
|
||||
console.log(course);
|
||||
res.json({
|
||||
course : course
|
||||
})
|
||||
}
|
||||
catch(err)
|
||||
{
|
||||
res.json({
|
||||
error : "error"
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.addClick = async (req , res , next) => {
|
||||
try
|
||||
{
|
||||
const route = req.body.route ;
|
||||
const userId = req.user._id ;
|
||||
let user = await User.findById(userId) ;
|
||||
let clicked = {...user.clicked} ;
|
||||
if(!clicked[route])
|
||||
{
|
||||
clicked[route] = 0 ;
|
||||
}
|
||||
clicked[route] = clicked[route] + 1 ;
|
||||
user.clicked = clicked ;
|
||||
await user.save() ;
|
||||
res.json({
|
||||
data : "added click"
|
||||
}) ;
|
||||
}
|
||||
catch(err)
|
||||
{
|
||||
res.json({
|
||||
error : err
|
||||
})
|
||||
}
|
||||
}
|
|
@ -4,6 +4,8 @@ const User = require('../models/User') ;
|
|||
const CourseType = require('../models/CourseType') ;
|
||||
const Course = require('../models/Course') ;
|
||||
const Student = require('../models/Student') ;
|
||||
const Coupon = require('../models/Coupon') ;
|
||||
const { getAllCoupons } = require('./coupon');
|
||||
|
||||
//test credentials of razorpay
|
||||
const instance = new razorpay({
|
||||
|
@ -103,7 +105,8 @@ module.exports.postRazorpay = async (req , res , next) => {
|
|||
//this route will be called after clicking the payment
|
||||
|
||||
//here this is the id of courseType
|
||||
const courseId = req.body.courseId || "6074201a4f355c3e4830dfe0" ;
|
||||
const courseId = req.body.courseId ;
|
||||
const couponCode = req.body.couponCode ;
|
||||
const userId = req.user._id ;
|
||||
let user = await User.findById(userId) ;
|
||||
let student =await Student.findById(user.student) ;
|
||||
|
@ -113,6 +116,13 @@ module.exports.postRazorpay = async (req , res , next) => {
|
|||
//we are creating a new order associated to it
|
||||
//we are setting the paymentSuccess to be false
|
||||
|
||||
let discount = 0 ;
|
||||
|
||||
let coupon = await Coupon.findOne({couponCode : couponCode}) ;
|
||||
if(coupon && coupon.numAllowed > 0)
|
||||
{
|
||||
discount = coupon.percentage ;
|
||||
}
|
||||
|
||||
let ind = -1 ;
|
||||
//checking whether user has already bought this course or not
|
||||
|
@ -134,7 +144,11 @@ module.exports.postRazorpay = async (req , res , next) => {
|
|||
const payment_capture = 1 ;
|
||||
|
||||
//setting the amount according to the course
|
||||
const amount = Number(course.amount) ;
|
||||
let amount = Number(course.amount) ;
|
||||
|
||||
amount = amount - amount*discount/100 ;
|
||||
|
||||
amount = Math.ceil(amount) ;
|
||||
|
||||
const options = {amount : (amount*100).toString()
|
||||
, currency : "INR"
|
||||
|
@ -155,6 +169,11 @@ module.exports.postRazorpay = async (req , res , next) => {
|
|||
email:user.email ,
|
||||
receipt : response.receipt
|
||||
});
|
||||
if(coupon && coupon.numAllowed > 0)
|
||||
{
|
||||
coupon.numAllowed = coupon.numAllowed - 1 ;
|
||||
await coupon.save() ;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
const Query = require('../models/query') ;
|
||||
|
||||
module.exports.addQuery = async (req , res , next)=> {
|
||||
try
|
||||
{
|
||||
let fullName = req.body.fullName || " " ;
|
||||
let phoneNumber = req.body.phoneNumber ;
|
||||
let email = req.body.email ;
|
||||
let query = req.body.query || " " ;
|
||||
let other = req.body.other || false ;
|
||||
let graduationYear = req.body.graduationYear ;
|
||||
let queryModel = await Query.findOne({email:email , query:query}) ;
|
||||
if(queryModel)
|
||||
{
|
||||
if(!queryModel.numAsked)
|
||||
{
|
||||
queryModel.numAsked = 0 ;
|
||||
}
|
||||
|
||||
queryModel.numAsked = queryModel.numAsked + 1 ;
|
||||
await queryModel.save() ;
|
||||
}
|
||||
else
|
||||
{
|
||||
queryModel = new Query ({
|
||||
fullName : fullName ,
|
||||
phoneNumber : phoneNumber ,
|
||||
email : email,
|
||||
query : query ,
|
||||
numAsked : 1 ,
|
||||
graduationYear : graduationYear ,
|
||||
other : other
|
||||
}) ;
|
||||
await queryModel.save() ;
|
||||
}
|
||||
res.json({
|
||||
message : "Saved Query"
|
||||
}) ;
|
||||
|
||||
}
|
||||
catch(err)
|
||||
{
|
||||
res.json({
|
||||
error : err
|
||||
}) ;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.getQueries = async (req , res , next) => {
|
||||
try
|
||||
{
|
||||
const queries = await Query.find() ;
|
||||
res.json({
|
||||
queries : queries
|
||||
})
|
||||
}
|
||||
catch(err)
|
||||
{
|
||||
res.json({
|
||||
error : err
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.getOtherQueries = async (req , res , next) => {
|
||||
try{
|
||||
const queries = await Query.find({other : true}) ;
|
||||
res.json({
|
||||
queries : queries
|
||||
})
|
||||
}
|
||||
catch(err){
|
||||
res.json({
|
||||
error : err
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.getTypeQueries = async (req , res , next) => {
|
||||
try{
|
||||
const type = req.body.type ;
|
||||
const queries = await Query.find({type:type}) ;
|
||||
res.json({
|
||||
queries : queries
|
||||
})
|
||||
}
|
||||
catch(err)
|
||||
{
|
||||
res.json({
|
||||
error:err
|
||||
})
|
||||
}
|
||||
}
|
|
@ -1,16 +1,29 @@
|
|||
const mongoose=require('mongoose')
|
||||
const CouponSchema=new mongoose.Schema({
|
||||
|
||||
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)
|
||||
module.exports = mongoose.model('Coupon' , CouponSchema) ;
|
|
@ -15,6 +15,10 @@ const courseSchema = new Schema({
|
|||
type : Number ,
|
||||
required : true
|
||||
} ,
|
||||
route: {
|
||||
type : String ,
|
||||
required : true
|
||||
} ,
|
||||
meetings : [
|
||||
{
|
||||
startTime : {
|
||||
|
|
|
@ -3,6 +3,7 @@ const mongoose = require("mongoose");
|
|||
const Schema = mongoose.Schema;
|
||||
|
||||
const userSchema = new Schema({
|
||||
|
||||
firstName: {
|
||||
type: String,
|
||||
required: true,
|
||||
|
@ -34,4 +35,39 @@ const userSchema = new Schema({
|
|||
//need to add isAdmin
|
||||
});
|
||||
|
||||
firstName : {
|
||||
type :String ,
|
||||
required : true
|
||||
} ,
|
||||
lastName : {
|
||||
type:String ,
|
||||
required: true
|
||||
} ,
|
||||
email : {
|
||||
type:String ,
|
||||
required: true
|
||||
} ,
|
||||
password : {
|
||||
type : String
|
||||
} ,
|
||||
googleId : {
|
||||
type : String
|
||||
} ,
|
||||
student : {
|
||||
type : mongoose.Types.ObjectId ,
|
||||
ref: 'Student'
|
||||
} ,
|
||||
isAdmin : {
|
||||
type : Boolean
|
||||
} ,
|
||||
numLoggedIn : {
|
||||
type : Number
|
||||
} ,
|
||||
clicked : {
|
||||
type : Object
|
||||
}
|
||||
//need to add isAdmin
|
||||
}) ;
|
||||
|
||||
|
||||
module.exports = mongoose.model("User", userSchema);
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
const mongoose = require('mongoose') ;
|
||||
|
||||
const Schema = mongoose.Schema ;
|
||||
|
||||
const querySchema = new Schema({
|
||||
fullName : {
|
||||
type :String ,
|
||||
required : true
|
||||
} ,
|
||||
phoneNumber : {
|
||||
type : String ,
|
||||
required : true
|
||||
} ,
|
||||
email : {
|
||||
type:String ,
|
||||
required: true
|
||||
} ,
|
||||
query : {
|
||||
type:String ,
|
||||
required : true
|
||||
} ,
|
||||
numAsked : {
|
||||
type:Number ,
|
||||
required : true
|
||||
} ,
|
||||
other : {
|
||||
type : Boolean ,
|
||||
require : true
|
||||
} ,
|
||||
graduationYear : {
|
||||
type : Number ,
|
||||
required :true
|
||||
}
|
||||
}) ;
|
||||
|
||||
module.exports = mongoose.model('Query' , querySchema) ;
|
|
@ -1,14 +1,11 @@
|
|||
const express = require("express");
|
||||
const router = express.Router();
|
||||
const mongoose = require("mongoose");
|
||||
const Coupon = mongoose.model("Coupon");
|
||||
const couponController = require('../controllers/coupon') ;
|
||||
|
||||
const isAuth = require('../middleware/requirelogin') ;
|
||||
const isAdmin = require('../middleware/isAdmin') ;
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
router.get("/get-coupon", (req, res) => {
|
||||
Coupon.find().then((result) => {
|
||||
res.status(200).json({ coupon: result });
|
||||
console.log(result);
|
||||
});
|
||||
});
|
||||
|
||||
router.post("/set-coupon", (req, res) => {
|
||||
const { percentage, coupon_code ,remainingTimes} = req.body;
|
||||
|
@ -25,29 +22,12 @@ router.post("/set-coupon", (req, res) => {
|
|||
});
|
||||
}
|
||||
});
|
||||
=======
|
||||
router.get("/getAllCoupons",isAuth , isAdmin , couponController.getAllCoupons);
|
||||
|
||||
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("/addCoupon", isAuth , isAdmin ,couponController.addCoupon);
|
||||
|
||||
router.post("/deleteCoupon", isAuth , isAdmin ,couponController.deleteCoupon);
|
||||
|
||||
module.exports = router;
|
||||
|
|
|
@ -19,4 +19,8 @@ router.post('/getTierCourse' , courseController.getTierCourse) ;
|
|||
//It is a post request
|
||||
router.post('/getMeetSchedule' ,isAuth , courseController.getMeetSchedule) ;
|
||||
|
||||
router.get('/getFromRoute' , courseController.getFromRoute) ;
|
||||
|
||||
router.post('/addClick' , isAuth , courseController.addClick) ;
|
||||
|
||||
module.exports = router ;
|
|
@ -0,0 +1,15 @@
|
|||
const express = require('express') ;
|
||||
|
||||
const queryController = require('../controllers/query') ;
|
||||
|
||||
const router = express.Router() ;
|
||||
|
||||
router.post('/addQuery' , queryController.addQuery) ;
|
||||
|
||||
router.get('/getAllQueries' , queryController.getQueries) ;
|
||||
|
||||
router.get('/getOtherQueries' , queryController.getOtherQueries) ;
|
||||
|
||||
router.post('/getTypeQueries' , queryController.getTypeQueries) ;
|
||||
|
||||
module.exports = router ;
|
Loading…
Reference in New Issue