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 { answers } = req.body; if (!Array.isArray(answers) || answers.length === 0) { return response(400, null, "Answers array is required", res); } for (const answer of answers) { const { ID_STUDENT_LEARNING, ID_ADMIN_EXERCISE, ANSWER_STUDENT } = answer; 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 = answers[0].ID_STUDENT_LEARNING; next(); } catch (error) { console.log(error); return response( 500, null, "Error creating or updating student exercise data!", res ); } }; export const getStudentAnswersByStdLearningId = async (req, res) => { }