Added queries , clickedSections , numLogins

This commit is contained in:
hardcodder 2021-05-06 00:18:21 +05:30
parent cd04f9b9e9
commit f7abe2f46c
8 changed files with 185 additions and 2 deletions

5
app.js
View File

@ -7,6 +7,7 @@ const paymentRoute = require('./routes/payment') ;
const courseRoute = require('./routes/course') ; const courseRoute = require('./routes/course') ;
const adminRoute = require('./routes/admin') ; const adminRoute = require('./routes/admin') ;
const couponRoute = require('./routes/Coupon') ; const couponRoute = require('./routes/Coupon') ;
const queryRoute = require('./routes/query') ;
const port=process.env.PORT || 5000; const port=process.env.PORT || 5000;
const cors = require('cors') ; const cors = require('cors') ;
@ -87,7 +88,9 @@ app.use(courseRoute) ;
app.use(adminRoute) ; app.use(adminRoute) ;
app.use(couponRoute) ; app.use(couponRoute) ;
app.use(queryRoute) ;
mongoose.connect(MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true ,useFindAndModify:false}). mongoose.connect(MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true ,useFindAndModify:false}).
then(result => { then(result => {

View File

@ -66,11 +66,18 @@ module.exports.postSignin = async (req , res , next) => {
if(isMatched) if(isMatched)
{ {
const token = jwt.sign({_id:user._id},JWT_secret) const token = jwt.sign({_id:user._id},JWT_secret)
if(!user.numLoggedIn)
{
user.numLoggedIn = 0 ;
}
user.numLoggedIn = user.numLoggedIn + 1 ;
res.json( res.json(
{ {
token:token token:token ,
isAdmin : user.isAdmin
} }
) )
await user.save() ;
} }
else else
{ {

View File

@ -1,5 +1,6 @@
const Course = require('../models/Course') ; const Course = require('../models/Course') ;
const CourseType = require('../models/CourseType') ; const CourseType = require('../models/CourseType') ;
const User = require('../models/User') ;
module.exports.postAddCourse = async (req , res , next) => { module.exports.postAddCourse = async (req , res , next) => {
try try
@ -169,4 +170,30 @@ module.exports.getFromRoute = async (req , res , next) => {
error : "error" 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
})
}
} }

91
controllers/query.js Normal file
View File

@ -0,0 +1,91 @@
const Query = require('../models/query') ;
module.exports.addQuery = async (req , res , next)=> {
try
{
let firstName = req.body.firstName || " " ;
let lastName = req.body.lastName || " " ;
let email = req.body.email ;
let query = req.body.query || " " ;
let other = req.body.other || false ;
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 ({
firstName : firstName ,
lastName : lastName ,
email : email,
query : query ,
numAsked : 1 ,
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
})
}
}

View File

@ -27,6 +27,12 @@ const userSchema = new Schema({
} , } ,
isAdmin : { isAdmin : {
type : Boolean type : Boolean
} ,
numLoggedIn : {
type : Number
} ,
clicked : {
type : Object
} }
//need to add isAdmin //need to add isAdmin
}) ; }) ;

32
models/query.js Normal file
View File

@ -0,0 +1,32 @@
const mongoose = require('mongoose') ;
const Schema = mongoose.Schema ;
const querySchema = new Schema({
firstName : {
type :String ,
required : true
} ,
lastName : {
type:String ,
required: true
} ,
email : {
type:String ,
required: true
} ,
query : {
type:String ,
required : true
} ,
numAsked : {
type:Number ,
required : true
} ,
other : {
type : Boolean ,
require : true
}
}) ;
module.exports = mongoose.model('Query' , querySchema) ;

View File

@ -21,4 +21,6 @@ router.post('/getMeetSchedule' ,isAuth , courseController.getMeetSchedule) ;
router.get('/getFromRoute' , courseController.getFromRoute) ; router.get('/getFromRoute' , courseController.getFromRoute) ;
router.post('/addClick' , isAuth , courseController.addClick) ;
module.exports = router ; module.exports = router ;

15
routes/query.js Normal file
View File

@ -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 ;