43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
const db = require('../config/database');
|
|
|
|
class Course {
|
|
static async findByTeacherId(teacherId) {
|
|
return await db.query(
|
|
'SELECT * FROM courses WHERE teacher_id = ? ORDER BY course_code',
|
|
[teacherId]
|
|
);
|
|
}
|
|
|
|
static async findById(id) {
|
|
const rows = await db.query('SELECT * FROM courses WHERE id = ?', [id]);
|
|
return rows[0];
|
|
}
|
|
|
|
static async findDetailsById(id) {
|
|
const sql = `
|
|
SELECT c.*, u.name as teacher_name, cl.class_name
|
|
FROM courses c
|
|
JOIN users u ON c.teacher_id = u.id
|
|
JOIN classes cl ON c.class_id = cl.id
|
|
WHERE c.id = ?
|
|
`;
|
|
const rows = await db.query(sql, [id]);
|
|
return rows[0];
|
|
}
|
|
|
|
static async findByStudentId(studentId) {
|
|
const sql = `
|
|
SELECT c.*, u.name as teacher_name
|
|
FROM courses c
|
|
JOIN classes cl ON c.class_id = cl.id
|
|
JOIN students s ON cl.class_name = s.class
|
|
JOIN users u ON c.teacher_id = u.id
|
|
WHERE s.id = ?
|
|
ORDER BY c.course_code
|
|
`;
|
|
return await db.query(sql, [studentId]);
|
|
}
|
|
}
|
|
|
|
module.exports = Course;
|