diff --git a/.env b/.env new file mode 100644 index 0000000..64a51f9 --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +MONGO_USER:Cantilever, + MONGO_PASSWORD :Cantilever , + MONGO_DEFAULT_DATABASE :myFirstDatabase \ No newline at end of file diff --git a/.history/.env_20210509163951 b/.history/.env_20210509163951 new file mode 100644 index 0000000..e69de29 diff --git a/.history/.env_20210509164017 b/.history/.env_20210509164017 new file mode 100644 index 0000000..eb765ae --- /dev/null +++ b/.history/.env_20210509164017 @@ -0,0 +1 @@ +MONGO_USER:"Cantilever" \ No newline at end of file diff --git a/.history/.env_20210509164034 b/.history/.env_20210509164034 new file mode 100644 index 0000000..088aa13 --- /dev/null +++ b/.history/.env_20210509164034 @@ -0,0 +1,3 @@ +"MONGO_USER":"Cantilever", + "MONGO_PASSWORD" :"Cantilever" , + "MONGO_DEFAULT_DATABASE" :"myFirstDatabase" \ No newline at end of file diff --git a/.history/.env_20210509164050 b/.history/.env_20210509164050 new file mode 100644 index 0000000..39086ad --- /dev/null +++ b/.history/.env_20210509164050 @@ -0,0 +1,3 @@ +module.export={MONGO_USER:"Cantilever", + MONGO_PASSWORD :"Cantilever" , + MONGO_DEFAULT_DATABASE :"myFirstDatabase" } \ No newline at end of file diff --git a/.history/.env_20210509164109 b/.history/.env_20210509164109 new file mode 100644 index 0000000..39086ad --- /dev/null +++ b/.history/.env_20210509164109 @@ -0,0 +1,3 @@ +module.export={MONGO_USER:"Cantilever", + MONGO_PASSWORD :"Cantilever" , + MONGO_DEFAULT_DATABASE :"myFirstDatabase" } \ No newline at end of file diff --git a/.history/.env_20210509164138 b/.history/.env_20210509164138 new file mode 100644 index 0000000..64a51f9 --- /dev/null +++ b/.history/.env_20210509164138 @@ -0,0 +1,3 @@ +MONGO_USER:Cantilever, + MONGO_PASSWORD :Cantilever , + MONGO_DEFAULT_DATABASE :myFirstDatabase \ No newline at end of file diff --git a/.history/.env_20210509164140 b/.history/.env_20210509164140 new file mode 100644 index 0000000..64a51f9 --- /dev/null +++ b/.history/.env_20210509164140 @@ -0,0 +1,3 @@ +MONGO_USER:Cantilever, + MONGO_PASSWORD :Cantilever , + MONGO_DEFAULT_DATABASE :myFirstDatabase \ No newline at end of file diff --git a/.history/app_20210509163930.js b/.history/app_20210509163930.js new file mode 100644 index 0000000..71a0918 --- /dev/null +++ b/.history/app_20210509163930.js @@ -0,0 +1,103 @@ +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 port = process.env.PORT || 5000; +require("dotenv"); + +const cors = require("cors"); +//const passport = require('passport'); +//const cookieSession = require('cookie-session') ; +//require('./passport-setup') ; + +const app = express(); + +const MONGO_URI = `mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PASSWORD}@cluster0.dqxva.mongodb.net/${process.env.MONGO_DEFAULT_DATABASE}?retryWrites=true&w=majority`; + +app.use(cors()); +app.use(bodyparser.json()); +require("./models/Coupon"); + +// app.use(cookieSession({ +// name: 'test-session', +// keys: ['key1', 'key2'] +// })) + +// const isLoggedIn = (req , res , next) => { +// if(req.user) +// { +// next() +// } +// else +// { +// res.json({ +// error : "No user" +// }) +// } +// } + +// app.use(passport.initialize()); +// app.use(passport.session()); + +// app.get('/failed' , (req , res) => { +// res.json({ +// error : "You have failed to login" +// }) +// }) + +// app.get('/' , (req , res) => { +// console.log('you are not logged in'); + +// }) + +// app.get('/good' ,isLoggedIn , (req , res) => { +// res.json({ +// message:"success" , +// user : req.user +// }) +// }) + +// app.get('/auth/google', +// passport.authenticate('google', { scope: ['profile' , 'email'] })); + +// app.get('/auth/google/callback', +// passport.authenticate('google', { failureRedirect: '/failed' }), +// function(req, res) { +// res.redirect('/good'); +// }); + +// app.get('/logout', (req , res) => { +// req.session = null ; +// 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, + 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); + }); diff --git a/.history/app_20210509163946.js b/.history/app_20210509163946.js new file mode 100644 index 0000000..5def299 --- /dev/null +++ b/.history/app_20210509163946.js @@ -0,0 +1,103 @@ +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 port = process.env.PORT || 5000; +require("dotenv").config(); + +const cors = require("cors"); +//const passport = require('passport'); +//const cookieSession = require('cookie-session') ; +//require('./passport-setup') ; + +const app = express(); + +const MONGO_URI = `mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PASSWORD}@cluster0.dqxva.mongodb.net/${process.env.MONGO_DEFAULT_DATABASE}?retryWrites=true&w=majority`; + +app.use(cors()); +app.use(bodyparser.json()); +require("./models/Coupon"); + +// app.use(cookieSession({ +// name: 'test-session', +// keys: ['key1', 'key2'] +// })) + +// const isLoggedIn = (req , res , next) => { +// if(req.user) +// { +// next() +// } +// else +// { +// res.json({ +// error : "No user" +// }) +// } +// } + +// app.use(passport.initialize()); +// app.use(passport.session()); + +// app.get('/failed' , (req , res) => { +// res.json({ +// error : "You have failed to login" +// }) +// }) + +// app.get('/' , (req , res) => { +// console.log('you are not logged in'); + +// }) + +// app.get('/good' ,isLoggedIn , (req , res) => { +// res.json({ +// message:"success" , +// user : req.user +// }) +// }) + +// app.get('/auth/google', +// passport.authenticate('google', { scope: ['profile' , 'email'] })); + +// app.get('/auth/google/callback', +// passport.authenticate('google', { failureRedirect: '/failed' }), +// function(req, res) { +// res.redirect('/good'); +// }); + +// app.get('/logout', (req , res) => { +// req.session = null ; +// 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, + 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); + }); diff --git a/.history/app_20210509164233.js b/.history/app_20210509164233.js new file mode 100644 index 0000000..c8213d3 --- /dev/null +++ b/.history/app_20210509164233.js @@ -0,0 +1,103 @@ +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 port = process.env.PORT || 5000; +require("dotenv").config(); + +const cors = require("cors"); +//const passport = require('passport'); +//const cookieSession = require('cookie-session') ; +//require('./passport-setup') ; + +const app = express(); + +const MONGO_URI = `mongodb+srv://Cantilever:Cantilever@cluster0.dqxva.mongodb.net/myFirstDatabase?retryWrites=true&w=majority`; + +app.use(cors()); +app.use(bodyparser.json()); +require("./models/Coupon"); + +// app.use(cookieSession({ +// name: 'test-session', +// keys: ['key1', 'key2'] +// })) + +// const isLoggedIn = (req , res , next) => { +// if(req.user) +// { +// next() +// } +// else +// { +// res.json({ +// error : "No user" +// }) +// } +// } + +// app.use(passport.initialize()); +// app.use(passport.session()); + +// app.get('/failed' , (req , res) => { +// res.json({ +// error : "You have failed to login" +// }) +// }) + +// app.get('/' , (req , res) => { +// console.log('you are not logged in'); + +// }) + +// app.get('/good' ,isLoggedIn , (req , res) => { +// res.json({ +// message:"success" , +// user : req.user +// }) +// }) + +// app.get('/auth/google', +// passport.authenticate('google', { scope: ['profile' , 'email'] })); + +// app.get('/auth/google/callback', +// passport.authenticate('google', { failureRedirect: '/failed' }), +// function(req, res) { +// res.redirect('/good'); +// }); + +// app.get('/logout', (req , res) => { +// req.session = null ; +// 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, + 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); + }); diff --git a/.history/controllers/auth_20210503150708.js b/.history/controllers/auth_20210503150708.js new file mode 100644 index 0000000..645d127 --- /dev/null +++ b/.history/controllers/auth_20210503150708.js @@ -0,0 +1,103 @@ +const bcrypt = require('bcryptjs') ; +const User = require('../models/User') ; +const Student = require('../models/Student') ; +const jwt = require('jsonwebtoken'); +const JWT_secret = "Cantileverlabs"; + +module.exports.Protected = async (req,res,next)=>{ + res.send("Hello User") +} +module.exports.postSignup = async (req , res , next) => { + try + { //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " " ; + let lastName = req.body.lastName || " " ; + let email = req.body.email ; + let password = req.body.password ; + let user = await User.findOne({email:email}) ; + if(user) + { + res.json({ + message:"User already exist" , + type:"error" + }) + } + else + { + const hashedPass = await bcrypt.hash(password , 12) ; + user = new User({ + firstName : firstName , + lastName : lastName , + email : email , + password : hashedPass , + isAdmin : false + }) ; + user = await user.save() ; + await Student.deleteOne({user:user._id}) ; + let student = new Student({ + user:user._id + }) + student = await student.save() ; + user.student = student._id ; + await user.save() ; + res.json({ + message:"Successfully signed Up" , + type:"success" + }) + } + } + catch(err) + { + console.log(err); + } +} ; + + +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) + res.json( + { + token:token + } + ) + } + else + { + res.json({ + message:"email and password doesn't match" , + type:"error" + }) + } + } + else + { + res.json({ + message:"No user with this email exists" , + type : "error" + }) + } + } + catch(err) + { + console.log(err); + } +} + +module.exports.checkProtected = (req , res , next) => { + console.log(req.user); + res.json({ + message:"Protected" , + user : req.user + }) +} \ No newline at end of file diff --git a/.history/controllers/auth_20210509153635.js b/.history/controllers/auth_20210509153635.js new file mode 100644 index 0000000..abe08a3 --- /dev/null +++ b/.history/controllers/auth_20210509153635.js @@ -0,0 +1,102 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const messagebird = require("messagebird"); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.phoneAuth = (req, res, next) => { + try { + const { otp, phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + } else { + messagebird.verify.create; + } + } catch (err) { + console.log(err); + } + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509154632.js b/.history/controllers/auth_20210509154632.js new file mode 100644 index 0000000..c7feaaf --- /dev/null +++ b/.history/controllers/auth_20210509154632.js @@ -0,0 +1,130 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const messagebird = require("messagebird"); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + try { + const { otp, phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code has been sent!", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live +}; + +module.exports.getOTP = (req, res, next) => { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Verified" }); + } + }); +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509155010.js b/.history/controllers/auth_20210509155010.js new file mode 100644 index 0000000..95eb378 --- /dev/null +++ b/.history/controllers/auth_20210509155010.js @@ -0,0 +1,130 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const { messagebird } = require("messagebird"); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + try { + const { otp, phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code has been sent!", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live +}; + +module.exports.getOTP = (req, res, next) => { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Verified" }); + } + }); +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509155051.js b/.history/controllers/auth_20210509155051.js new file mode 100644 index 0000000..95eb378 --- /dev/null +++ b/.history/controllers/auth_20210509155051.js @@ -0,0 +1,130 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const { messagebird } = require("messagebird"); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + try { + const { otp, phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code has been sent!", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live +}; + +module.exports.getOTP = (req, res, next) => { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Verified" }); + } + }); +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509155117.js b/.history/controllers/auth_20210509155117.js new file mode 100644 index 0000000..bb30f83 --- /dev/null +++ b/.history/controllers/auth_20210509155117.js @@ -0,0 +1,130 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const { messagebird } = require("messagebird")(""); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + try { + const { otp, phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code has been sent!", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live +}; + +module.exports.getOTP = (req, res, next) => { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Verified" }); + } + }); +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509155429.js b/.history/controllers/auth_20210509155429.js new file mode 100644 index 0000000..8cf5df4 --- /dev/null +++ b/.history/controllers/auth_20210509155429.js @@ -0,0 +1,130 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const { messagebird } = require("messagebird")(" "); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + try { + const { otp, phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code has been sent!", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live +}; + +module.exports.getOTP = (req, res, next) => { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Verified" }); + } + }); +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509155455.js b/.history/controllers/auth_20210509155455.js new file mode 100644 index 0000000..8cf5df4 --- /dev/null +++ b/.history/controllers/auth_20210509155455.js @@ -0,0 +1,130 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const { messagebird } = require("messagebird")(" "); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + try { + const { otp, phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code has been sent!", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live +}; + +module.exports.getOTP = (req, res, next) => { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Verified" }); + } + }); +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509155647.js b/.history/controllers/auth_20210509155647.js new file mode 100644 index 0000000..8b44c69 --- /dev/null +++ b/.history/controllers/auth_20210509155647.js @@ -0,0 +1,130 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const messagebird = require("messagebird")(" "); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + try { + const { otp, phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code has been sent!", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live +}; + +module.exports.getOTP = (req, res, next) => { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Verified" }); + } + }); +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509155744.js b/.history/controllers/auth_20210509155744.js new file mode 100644 index 0000000..e0acea9 --- /dev/null +++ b/.history/controllers/auth_20210509155744.js @@ -0,0 +1,130 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const messagebird = require("messagebird")(" "); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + try { + const { otp, phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code is %token", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live +}; + +module.exports.getOTP = (req, res, next) => { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Verified" }); + } + }); +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509160156.js b/.history/controllers/auth_20210509160156.js new file mode 100644 index 0000000..bdf5047 --- /dev/null +++ b/.history/controllers/auth_20210509160156.js @@ -0,0 +1,130 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const messagebird = require("messagebird")("uNNYosMopvvCW9RTR1tRWJmYC"); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + try { + const { otp, phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code is %token", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live +}; + +module.exports.getOTP = (req, res, next) => { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Verified" }); + } + }); +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509161351.js b/.history/controllers/auth_20210509161351.js new file mode 100644 index 0000000..bdf5047 --- /dev/null +++ b/.history/controllers/auth_20210509161351.js @@ -0,0 +1,130 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const messagebird = require("messagebird")("uNNYosMopvvCW9RTR1tRWJmYC"); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + try { + const { otp, phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code is %token", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live +}; + +module.exports.getOTP = (req, res, next) => { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Verified" }); + } + }); +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509164829.js b/.history/controllers/auth_20210509164829.js new file mode 100644 index 0000000..3e02797 --- /dev/null +++ b/.history/controllers/auth_20210509164829.js @@ -0,0 +1,130 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const messagebird = require("messagebird")("uNNYosMopvvCW9RTR1tRWJmYC"); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live + try { + const { phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code is %token", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.getOTP = (req, res, next) => { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Verified" }); + } + }); +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509165526.js b/.history/controllers/auth_20210509165526.js new file mode 100644 index 0000000..cb03924 --- /dev/null +++ b/.history/controllers/auth_20210509165526.js @@ -0,0 +1,130 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const messagebird = require("messagebird")("uNNYosMopvvCW9RTR1tRWJmYC"); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live + try { + const { phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code is %token", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.getOTP = (req, res, next) => { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Code Verified" }); + } + }); +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509165744.js b/.history/controllers/auth_20210509165744.js new file mode 100644 index 0000000..812d0a7 --- /dev/null +++ b/.history/controllers/auth_20210509165744.js @@ -0,0 +1,134 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const messagebird = require("messagebird")("uNNYosMopvvCW9RTR1tRWJmYC"); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live + try { + const { phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code is %token", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.getOTP = (req, res, next) => { + try { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Code Verified" }); + } + }); + } catch (err) { + console.log(err); + } +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/controllers/auth_20210509165914.js b/.history/controllers/auth_20210509165914.js new file mode 100644 index 0000000..d9b71a4 --- /dev/null +++ b/.history/controllers/auth_20210509165914.js @@ -0,0 +1,134 @@ +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); +const JWT_secret = "Cantileverlabs"; +const messagebird = require("messagebird")("llVKD53ve6QRpbCKOHzWBADaS"); + +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); + } + } catch (err) { + console.log(err); + } +}; + +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.sendOTP = (req, res, next) => { + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live + try { + const { phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code is %token", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.getOTP = (req, res, next) => { + try { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Code Verified" }); + } + }); + } catch (err) { + console.log(err); + } +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/.history/models/User_20210503150708.js b/.history/models/User_20210503150708.js new file mode 100644 index 0000000..205349f --- /dev/null +++ b/.history/models/User_20210503150708.js @@ -0,0 +1,34 @@ +const mongoose = require('mongoose') ; + +const Schema = mongoose.Schema ; + +const userSchema = new Schema({ + 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 + } + //need to add isAdmin +}) ; + +module.exports = mongoose.model("User" , userSchema) ; \ No newline at end of file diff --git a/.history/models/User_20210509151714.js b/.history/models/User_20210509151714.js new file mode 100644 index 0000000..434b290 --- /dev/null +++ b/.history/models/User_20210509151714.js @@ -0,0 +1,37 @@ +const mongoose = require("mongoose"); + +const Schema = mongoose.Schema; + +const userSchema = new Schema({ + 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, + }, + otp: { + type: String, + }, + //need to add isAdmin +}); + +module.exports = mongoose.model("User", userSchema); diff --git a/.history/models/User_20210509151719.js b/.history/models/User_20210509151719.js new file mode 100644 index 0000000..434b290 --- /dev/null +++ b/.history/models/User_20210509151719.js @@ -0,0 +1,37 @@ +const mongoose = require("mongoose"); + +const Schema = mongoose.Schema; + +const userSchema = new Schema({ + 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, + }, + otp: { + type: String, + }, + //need to add isAdmin +}); + +module.exports = mongoose.model("User", userSchema); diff --git a/.history/routes/auth_20210503150708.js b/.history/routes/auth_20210503150708.js new file mode 100644 index 0000000..0eeb700 --- /dev/null +++ b/.history/routes/auth_20210503150708.js @@ -0,0 +1,12 @@ +const express = require('express') ; +const authController = require('../controllers/auth') ; +const isAuth = require('../middleware/requirelogin') ; +const router = express.Router() ; + +router.get('/protected' ,isAuth,authController.checkProtected) ; + +router.post('/signup' , authController.postSignup) ; + +router.post('/signin' , authController.postSignin) ; + +module.exports = router ; \ No newline at end of file diff --git a/.history/routes/auth_20210509154824.js b/.history/routes/auth_20210509154824.js new file mode 100644 index 0000000..59ba658 --- /dev/null +++ b/.history/routes/auth_20210509154824.js @@ -0,0 +1,16 @@ +const express = require("express"); +const authController = require("../controllers/auth"); +const isAuth = require("../middleware/requirelogin"); +const router = express.Router(); + +router.get("/protected", isAuth, authController.checkProtected); + +router.post("/signup", authController.postSignup); + +router.post("/signin", authController.postSignin); + +router.post("/sendotp", authController.sendOTP); + +router.get("/getotp", authController.getOTP); + +module.exports = router; diff --git a/.history/routes/auth_20210509164314.js b/.history/routes/auth_20210509164314.js new file mode 100644 index 0000000..6c04fe6 --- /dev/null +++ b/.history/routes/auth_20210509164314.js @@ -0,0 +1,16 @@ +const express = require("express"); +const authController = require("../controllers/auth"); +const isAuth = require("../middleware/requirelogin"); +const router = express.Router(); + +router.get("/protected", isAuth, authController.checkProtected); + +router.post("/signup", authController.postSignup); + +router.post("/signin", authController.postSignin); + +router.post("/sendotp", authController.sendOTP); + +router.post("/getotp", authController.getOTP); + +module.exports = router; diff --git a/app.js b/app.js index c081f70..c8213d3 100644 --- a/app.js +++ b/app.js @@ -1,25 +1,26 @@ -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 port=process.env.PORT || 5000; +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 port = process.env.PORT || 5000; +require("dotenv").config(); -const cors = require('cors') ; +const cors = require("cors"); //const passport = require('passport'); //const cookieSession = require('cookie-session') ; //require('./passport-setup') ; -const app = express() ; +const app = express(); -const MONGO_URI = `mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PASSWORD}@cluster0.dqxva.mongodb.net/${process.env.MONGO_DEFAULT_DATABASE}?retryWrites=true&w=majority` +const MONGO_URI = `mongodb+srv://Cantilever:Cantilever@cluster0.dqxva.mongodb.net/myFirstDatabase?retryWrites=true&w=majority`; -app.use(cors()) ; -app.use(bodyparser.json()) ; -require('./models/Coupon') +app.use(cors()); +app.use(bodyparser.json()); +require("./models/Coupon"); // app.use(cookieSession({ // name: 'test-session', @@ -34,7 +35,7 @@ require('./models/Coupon') // else // { // res.json({ -// error : "No user" +// error : "No user" // }) // } // } @@ -42,13 +43,12 @@ require('./models/Coupon') // app.use(passport.initialize()); // app.use(passport.session()); - // app.get('/failed' , (req , res) => { // res.json({ // error : "You have failed to login" // }) // }) - + // app.get('/' , (req , res) => { // console.log('you are not logged in'); @@ -64,7 +64,7 @@ require('./models/Coupon') // app.get('/auth/google', // passport.authenticate('google', { scope: ['profile' , 'email'] })); -// app.get('/auth/google/callback', +// app.get('/auth/google/callback', // passport.authenticate('google', { failureRedirect: '/failed' }), // function(req, res) { // res.redirect('/good'); @@ -75,25 +75,29 @@ require('./models/Coupon') // req.logout() ; // res.redirect('/') ; // }) -app.use(require('./routes/Coupon')) -app.use(authRoute) ; +app.use(require("./routes/Coupon")); +app.use(authRoute); -app.use(profileRoute) ; +app.use(profileRoute); -app.use(paymentRoute) ; +app.use(paymentRoute); -app.use(courseRoute) ; +app.use(courseRoute); -app.use(adminRoute) ; +app.use(adminRoute); - -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 => { +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); -}) \ No newline at end of file + }); diff --git a/controllers/auth.js b/controllers/auth.js index 645d127..d9b71a4 100644 --- a/controllers/auth.js +++ b/controllers/auth.js @@ -1,103 +1,134 @@ -const bcrypt = require('bcryptjs') ; -const User = require('../models/User') ; -const Student = require('../models/Student') ; -const jwt = require('jsonwebtoken'); +const bcrypt = require("bcryptjs"); +const User = require("../models/User"); +const Student = require("../models/Student"); +const jwt = require("jsonwebtoken"); const JWT_secret = "Cantileverlabs"; +const messagebird = require("messagebird")("llVKD53ve6QRpbCKOHzWBADaS"); -module.exports.Protected = async (req,res,next)=>{ - res.send("Hello User") -} -module.exports.postSignup = async (req , res , next) => { - try - { //we need firstName , lastName , email , password as input - let firstName = req.body.firstName || " " ; - let lastName = req.body.lastName || " " ; - let email = req.body.email ; - let password = req.body.password ; - let user = await User.findOne({email:email}) ; - if(user) - { - res.json({ - message:"User already exist" , - type:"error" - }) - } - else - { - const hashedPass = await bcrypt.hash(password , 12) ; - user = new User({ - firstName : firstName , - lastName : lastName , - email : email , - password : hashedPass , - isAdmin : false - }) ; - user = await user.save() ; - await Student.deleteOne({user:user._id}) ; - let student = new Student({ - user:user._id - }) - student = await student.save() ; - user.student = student._id ; - await user.save() ; - res.json({ - message:"Successfully signed Up" , - type:"success" - }) - } +module.exports.Protected = async (req, res, next) => { + res.send("Hello User"); +}; +module.exports.postSignup = async (req, res, next) => { + try { + //we need firstName , lastName , email , password as input + let firstName = req.body.firstName || " "; + let lastName = req.body.lastName || " "; + let email = req.body.email; + let password = req.body.password; + let user = await User.findOne({ email: email }); + if (user) { + res.json({ + message: "User already exist", + type: "error", + }); + } else { + const hashedPass = await bcrypt.hash(password, 12); + user = new User({ + firstName: firstName, + lastName: lastName, + email: email, + password: hashedPass, + isAdmin: false, + }); + user = await user.save(); + await Student.deleteOne({ user: user._id }); + let student = new Student({ + user: user._id, + }); + student = await student.save(); + user.student = student._id; + await user.save(); + res.json({ + message: "Successfully signed Up", + type: "success", + }); } - catch(err) - { - console.log(err); - } -} ; + } catch (err) { + console.log(err); + } +}; - -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) - res.json( - { - token:token - } - ) - } - else - { - res.json({ - message:"email and password doesn't match" , - type:"error" - }) - } - } - else - { - res.json({ - message:"No user with this email exists" , - type : "error" - }) - } +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); + res.json({ + token: token, + }); + } else { + res.json({ + message: "email and password doesn't match", + type: "error", + }); + } + } else { + res.json({ + message: "No user with this email exists", + type: "error", + }); } - catch(err) - { - console.log(err); - } -} + } catch (err) { + console.log(err); + } +}; -module.exports.checkProtected = (req , res , next) => { - console.log(req.user); - res.json({ - message:"Protected" , - user : req.user - }) -} \ No newline at end of file +module.exports.sendOTP = (req, res, next) => { + //uNNYosMopvvCW9RTR1tRWJmYC test + //llVKD53ve6QRpbCKOHzWBADaS live + try { + const { phoneNumber } = req.body; + if (!phoneNumber) { + res.status(422).json({ message: "Please Add All Required Fields" }); + return; + } else { + messagebird.verify.create( + phoneNumber, + { + template: "Your verification code is %token", + }, + function (err, response) { + if (err) { + console.log(err); + res.status(422).json({ message: err.errors[0].description }); + } else { + console.log(response); + res.json({ id: response.id }); + } + } + ); + } + } catch (err) { + console.log(err); + } +}; + +module.exports.getOTP = (req, res, next) => { + try { + const { id, token } = req.body; + messagebird.verify.verify(id, token, function (err, response) { + if (err) { + console.log({ error: err.errors[0].description, id: id }); + res.json({ error: err.errors[0].description, id: id }); + } else { + console.log(response); + res.json({ message: "Code Verified" }); + } + }); + } catch (err) { + console.log(err); + } +}; + +module.exports.checkProtected = (req, res, next) => { + console.log(req.user); + res.json({ + message: "Protected", + user: req.user, + }); +}; diff --git a/models/User.js b/models/User.js index 205349f..434b290 100644 --- a/models/User.js +++ b/models/User.js @@ -1,34 +1,37 @@ -const mongoose = require('mongoose') ; +const mongoose = require("mongoose"); -const Schema = mongoose.Schema ; +const Schema = mongoose.Schema; const userSchema = new Schema({ - 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 - } - //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, + }, + otp: { + type: String, + }, + //need to add isAdmin +}); -module.exports = mongoose.model("User" , userSchema) ; \ No newline at end of file +module.exports = mongoose.model("User", userSchema); diff --git a/package-lock.json b/package-lock.json index e4d84ad..2ba48fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,8 +14,10 @@ "cookie-session": "^1.4.0", "cors": "^2.8.5", "crypto": "^1.0.1", + "dotenv": "^9.0.1", "express": "^4.17.1", "jsonwebtoken": "^8.5.1", + "messagebird": "^3.6.1", "mongoose": "^5.12.2", "passport": "^0.4.1", "passport-google-oauth": "^2.0.0", @@ -695,6 +697,14 @@ "node": ">=8" } }, + "node_modules/dotenv": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.1.tgz", + "integrity": "sha512-W8FNeNnnvJoYfgkFRKzp8kTgz0T2YY4TJ9xy1Ma0hSebPTK8iquRtpG12TUrSTX5zIN9D/wSLEEuI+Ad35tlyw==", + "engines": { + "node": ">=10" + } + }, "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -1444,6 +1454,37 @@ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, + "node_modules/messagebird": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/messagebird/-/messagebird-3.6.1.tgz", + "integrity": "sha512-HcbHxNp53MblcDReOo+sLvlr/aX1pGH/Liyegphpz+CXVKmEl2WUOKyPQCy69pTW8uRM8QlGbmYJP+BzZh/sRQ==", + "dependencies": { + "safe-buffer": "^5.2.1", + "scmp": "^2.1.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/messagebird/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -2172,6 +2213,11 @@ "node": ">=6" } }, + "node_modules/scmp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/scmp/-/scmp-2.1.0.tgz", + "integrity": "sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==" + }, "node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -3233,6 +3279,11 @@ "is-obj": "^2.0.0" } }, + "dotenv": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.1.tgz", + "integrity": "sha512-W8FNeNnnvJoYfgkFRKzp8kTgz0T2YY4TJ9xy1Ma0hSebPTK8iquRtpG12TUrSTX5zIN9D/wSLEEuI+Ad35tlyw==" + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -3849,6 +3900,22 @@ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, + "messagebird": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/messagebird/-/messagebird-3.6.1.tgz", + "integrity": "sha512-HcbHxNp53MblcDReOo+sLvlr/aX1pGH/Liyegphpz+CXVKmEl2WUOKyPQCy69pTW8uRM8QlGbmYJP+BzZh/sRQ==", + "requires": { + "safe-buffer": "^5.2.1", + "scmp": "^2.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -4437,6 +4504,11 @@ "sparse-bitfield": "^3.0.3" } }, + "scmp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/scmp/-/scmp-2.1.0.tgz", + "integrity": "sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==" + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", diff --git a/package.json b/package.json index d13724d..57493f3 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,10 @@ "cookie-session": "^1.4.0", "cors": "^2.8.5", "crypto": "^1.0.1", + "dotenv": "^9.0.1", "express": "^4.17.1", "jsonwebtoken": "^8.5.1", + "messagebird": "^3.6.1", "mongoose": "^5.12.2", "passport": "^0.4.1", "passport-google-oauth": "^2.0.0", diff --git a/routes/auth.js b/routes/auth.js index 0eeb700..6c04fe6 100644 --- a/routes/auth.js +++ b/routes/auth.js @@ -1,12 +1,16 @@ -const express = require('express') ; -const authController = require('../controllers/auth') ; -const isAuth = require('../middleware/requirelogin') ; -const router = express.Router() ; +const express = require("express"); +const authController = require("../controllers/auth"); +const isAuth = require("../middleware/requirelogin"); +const router = express.Router(); -router.get('/protected' ,isAuth,authController.checkProtected) ; +router.get("/protected", isAuth, authController.checkProtected); -router.post('/signup' , authController.postSignup) ; +router.post("/signup", authController.postSignup); -router.post('/signin' , authController.postSignin) ; +router.post("/signin", authController.postSignin); -module.exports = router ; \ No newline at end of file +router.post("/sendotp", authController.sendOTP); + +router.post("/getotp", authController.getOTP); + +module.exports = router;