feat: login by NISN

This commit is contained in:
elangptra 2024-11-28 10:42:49 +07:00
parent 89b4aedc93
commit c290873bd5

View File

@ -692,10 +692,10 @@ export const registerStudentForAdmin = async (req, res) => {
};
export const loginUser = async (req, res) => {
const { EMAIL, PASSWORD } = req.body;
const { IDENTIFIER, PASSWORD } = req.body;
if (!EMAIL) {
return response(400, null, "Email is required!", res);
if (!IDENTIFIER) {
return response(400, null, "Identifier (Email or NISN) is required!", res);
}
if (!PASSWORD) {
@ -703,7 +703,22 @@ export const loginUser = async (req, res) => {
}
try {
const user = await models.User.findOne({ where: { EMAIL } });
let user;
if (IDENTIFIER.includes("@")) {
user = await models.User.findOne({ where: { EMAIL: IDENTIFIER } });
} else {
const student = await models.Student.findOne({
where: { NISN: IDENTIFIER },
include: [
{
model: models.User,
as: "studentUser",
},
],
});
user = student?.studentUser;
}
if (!user) {
return response(404, null, "User data not found!", res);
@ -713,7 +728,7 @@ export const loginUser = async (req, res) => {
return response(
403,
null,
"User is not validated! Please verify your email first.",
"User is not validated! Please verify via email first.",
res
);
}