80 lines
2.0 KiB
JavaScript
80 lines
2.0 KiB
JavaScript
const bcrypt = require('bcryptjs') ;
|
|
const User = require('../models/User') ;
|
|
|
|
module.exports.postSignup = async (req , res , next) => {
|
|
try
|
|
{
|
|
let firstName = req.body.firstName || " " ;
|
|
let lastName = req.body.lastName || " " ;
|
|
let email = req.body.email ;
|
|
let phoneNumber = req.body.phoneNumber ;
|
|
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 ,
|
|
phoneNumber : phoneNumber
|
|
}) ;
|
|
user = await user.save() ;
|
|
res.json({
|
|
message:"Successfully signed Up" ,
|
|
type:"success"
|
|
})
|
|
}
|
|
}
|
|
catch(err)
|
|
{
|
|
console.log(err);
|
|
}
|
|
} ;
|
|
|
|
|
|
module.exports.postSignin = async (req , res , next) => {
|
|
try
|
|
{
|
|
let email = req.body.email ;
|
|
let password = req.body.password ;
|
|
let user = await User.findOne({email : email}) ;
|
|
if(user)
|
|
{
|
|
const isMathced = await bcrypt.compare(password , user.password) ;
|
|
if(isMathced)
|
|
{
|
|
res.json({
|
|
message:"Logged In" ,
|
|
type : "success"
|
|
})
|
|
}
|
|
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);
|
|
}
|
|
} |