File: //home/evaluation-leave/controllers/authController.js
// controllers/authController.js
const bcrypt = require("bcryptjs");
const jwt = require("jsonwebtoken");
const config = require("../config/config");
const User = require("../models/users");
module.exports = {
signin: async (req, res) => {
const { email, password } = req.body;
try {
const user = await User.findUserByEmail(email);
if (!user) {
return res.status(401).json({ message: "Invalid email or password" });
}
bcrypt.compare(password, user.password, (error, pwMatch) => {
if (error || !pwMatch) {
return res.status(401).json({ message: "Invalid email or password" });
}
const payload = {
email: user.email,
entity_id: user.id,
active_yn: user.active_yn,
};
const token = jwt.sign(payload, config.jwtSecretKey, {
expiresIn: "1d",
});
res.status(200).json({
user: {
email: user.email,
fname: user.fname,
lname: user.lname,
roleid: user.roleid,
departmentId: user.departmentId,
status: user.active_yn,
evaluation_status: user.current_eval_status,
leave_b_foward: user.leave_b_foward,
leave_earned: user.leave_earned,
leave_taken: user.leave_taken,
},
token,
});
});
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
// ...other controllers...
};