export const register = async (req, res) => {
const { name, email, password } = req.body;
if (!name || !email || !password) {
return errorResponse({
res,
statusCode: 400,
message: "All fields are required",
});
}
try {
const [existingUser] = await db.execute(
"SELECT * FROM users WHERE email = ?",
[email]
);
if (existingUser.length > 0) {
return errorResponse({
res,
statusCode: 409,
message: "Email is already registered",
});
}
const hashedPassword = await bcrypt.hash(password, 10);
const [result] = await db.execute(
"INSERT INTO users (name, email, password) VALUES (?, ?, ?)",
[name, email, hashedPassword]
);
const token = jwt.sign(
{ id: result.insertId, email, name },
process.env.JWT_SECRET,
{ expiresIn: "8h" }
);
successResponse({
res,
statusCode: 201,
message: "User Registered",
data: { token },
});
} catch (err) {
errorResponse({ res, statusCode: 500, message: "Internal Server Error" });
}
};