94 lines
2.4 KiB
JavaScript
94 lines
2.4 KiB
JavaScript
import response from "../../response.js";
|
|
import models from "../../models/index.js";
|
|
|
|
export const getStdExercises = async (req, res) => {
|
|
try {
|
|
const stdExercise = await models.StdExercise.findAll();
|
|
response(200, stdExercise, "Success", res);
|
|
} catch (error) {
|
|
console.log(error);
|
|
response(500, null, "Error retrieving student exercise data!", res);
|
|
}
|
|
};
|
|
|
|
export const getStdExerciseById = async (req, res) => {
|
|
try {
|
|
const { id } = req.params;
|
|
const stdExercise = await models.StdExercise.findByPk(id);
|
|
|
|
if (!stdExercise) {
|
|
return response(404, null, "Student exercise data not found", res);
|
|
}
|
|
|
|
response(200, stdExercise, "Success", res);
|
|
} catch (error) {
|
|
console.log(error);
|
|
res.status(500).json({ message: "Internal Server Error" });
|
|
}
|
|
};
|
|
|
|
export const stdAnswerExercise = async (req, res, next) => {
|
|
try {
|
|
const { ID_STUDENT_LEARNING, ID_ADMIN_EXERCISE, ANSWER_STUDENT } = req.body;
|
|
|
|
if (!ID_STUDENT_LEARNING) {
|
|
return response(400, null, "Id student learning is required", res);
|
|
}
|
|
|
|
const existingStdLearning = await models.StdLearning.findByPk(
|
|
ID_STUDENT_LEARNING
|
|
);
|
|
if (!existingStdLearning) {
|
|
return response(404, null, "Id student learning not found", res);
|
|
}
|
|
|
|
if (!ID_ADMIN_EXERCISE) {
|
|
return response(400, null, "Id exercise is required", res);
|
|
}
|
|
|
|
const exercise = await models.Exercise.findOne({
|
|
where: {
|
|
ID_ADMIN_EXERCISE: ID_ADMIN_EXERCISE,
|
|
ID_LEVEL: existingStdLearning.ID_LEVEL,
|
|
},
|
|
});
|
|
if (!exercise) {
|
|
return response(404, null, "Exercise not found in this level", res);
|
|
}
|
|
|
|
if (!ANSWER_STUDENT) {
|
|
return response(400, null, "Answer is required", res);
|
|
}
|
|
|
|
const existingStdExercise = await models.StdExercise.findOne({
|
|
where: {
|
|
ID_STUDENT_LEARNING: ID_STUDENT_LEARNING,
|
|
ID_ADMIN_EXERCISE: ID_ADMIN_EXERCISE,
|
|
},
|
|
});
|
|
|
|
if (existingStdExercise) {
|
|
existingStdExercise.ANSWER_STUDENT = ANSWER_STUDENT;
|
|
|
|
await existingStdExercise.save();
|
|
} else {
|
|
await models.StdExercise.create({
|
|
ID_STUDENT_LEARNING,
|
|
ID_ADMIN_EXERCISE,
|
|
ANSWER_STUDENT,
|
|
});
|
|
}
|
|
|
|
req.params.id = ID_STUDENT_LEARNING;
|
|
next();
|
|
} catch (error) {
|
|
console.log(error);
|
|
return response(
|
|
500,
|
|
null,
|
|
"Error creating or updating student exercise data!",
|
|
res
|
|
);
|
|
}
|
|
};
|