var express = require('express');
var router = express.Router();
var userModel = require('../model/user');
const auth = require('../middleware/auth');
const jwt = require('jsonwebtoken');
const bcrypt = require('bcrypt');
/* GET users listing. */
const CreateUser = async (req,res,next) => {
try {
const createUser = new userModel({
username: req.body.username,
password: req.body.password
})
const saveData = await createUser.save();
res.status(200).json({
status: 'success',
saveData
})
} catch (error) {
res.status(500).json({
status: 'error',
error
})
}
}
const CheckUser = async (req,res,next) => {
try {
const {username , password } = req.body
const findUser = await userModel.findOne({ username : username})
if(findUser){
bcrypt.compare(password, findUser.password, function(err, result) {
// result == true
if (result == true) {
console.log(findUser);
const token = jwt.sign({ _id: findUser._id }, "JWT_SECRET", { expiresIn: '1h' });
res.cookie('token', token, { httpOnly: true });
req.session.user = findUser;
res.status(200).json({
status: 'Login success',
token
})
}else {
res.status(500).json({
status: 'Password Incorrect',
})
}
});
}else{
res.status(500).json({
status: 'User not Found',
})
}
} catch (error) {
res.status(500).json({
status: 'error',
error
})
}
}
const GetUser = async (req,res,next) => {
try {
const page = parseInt(req.query.page);
const limit = parseInt(req.query.limit) || 10;
const skip = (page - 1) * limit;
const findUser = await userModel.find().skip(skip).limit(limit);
const userToken = req.cookies.token;
const user = req.session.user;
console.log("🚀 ~ GetUser ~ user:", user)
console.log(user);
res.status(200).json({
status: 'Login success',
findUser,
userToken,
user
})
} catch (error) {
res.status(500).json({
status: 'error',
error
})
}
}
const logoutUser = async (req,res,next) => {
try {
res.clearCookie('token');
res.send({ message: 'Logged out successfully' });
} catch (error) {
res.status(500).json({
status: 'error',
error
})
}
}
router.post('/signin', CreateUser);
router.post('/logIn', CheckUser);
router.get('/getUser',auth, GetUser);
router.get('/logout',auth, logoutUser);
module.exports = router;