Sindbad~EG File Manager
const brcrypt = require("bcrypt");
const db = require("../models");
const jwt = require("jsonwebtoken");
const loginController = async (req, res) => {
try {
const { email, password } = req.body;
let [result] = await db.tblUser.findAll({
where: {
email: email,
},
});
// return res.json({ data: result });
if (!result) {
return res
.status(404)
.json({ status: 404, message: "Invalid Credentials." });
}
const isMatched = await brcrypt.compare(password, result.password);
if (!isMatched) {
return res
.status(403)
.json({ status: 403, message: "Invalid Credentials." });
}
let token = await jwt.sign(
{ email: result.email, auctioneerId: result.auctioneer_id },
process.env.JWT_KEY
);
return res.json({
status: 200,
message: "Success",
data: [{ token, ...result.dataValues }],
});
} catch (error) {
return res.status(500).json({
status: 500,
message: "Internal Server Error",
error: error.message,
});
}
};
const signupController = async (req, res) => {
try {
const { email, password } = req.body;
const salt = await brcrypt.genSalt(10);
const hashedPassword = await brcrypt.hash(password, salt);
req.body.password = hashedPassword;
let result;
result = await db.tblUser.findAll({ where: { email: email } });
if (result.length > 0) {
return res.status(402).json({
status: 402,
message: "Email already existed please choose another account",
});
}
result = await db.tblUser.create(req.body);
let token = await jwt.sign(
{ email: result.email, userId: result.user_id },
process.env.JWT_KEY
);
return res.json({
status: 200,
message: "Success",
data: [{ token, ...result.dataValues }],
});
} catch (error) {
return res.status(500).json({
status: 500,
message: "Internal Server Error",
error: error.message,
});
}
};
const updateUserPassword = async (req, res) => {
try {
let { userId, newPassword } = req.body;
if (newPassword) {
const salt = await brcrypt.genSalt(10);
const encrypPassword = await brcrypt.hash(newPassword, salt);
req.body.password = encrypPassword;
let result = await db.tblUser.update(req.body, {
where: { user_id: userId },
});
return res.status(200).json({ status: 200, message: "Success" });
} else {
return res.json({ status: 400, message: "newpassword undefined" });
}
} catch (error) {
return res.status(500).json({
status: 500,
message: "Internal Server Error",
error: error.message,
});
}
};
module.exports = { loginController, signupController, updateUserPassword };
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists