Skip to content

Commit ff110a5

Browse files
author
Cristina Taboada
committed
Reto 2 completo
1 parent b39c6d9 commit ff110a5

File tree

1 file changed

+59
-6
lines changed

1 file changed

+59
-6
lines changed

Diff for: RetosTema4/src/controller/notas.controller.js

+59-6
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,68 @@
11
const {pool} = require("../database");
22

3-
const getMedia = (req,res)=>{
4-
console.log('Obtenemos la nota media de un alumno');
3+
async function getMedia(req,res){
4+
const params = [req.query.id];
5+
let sql;
6+
//-- comprobar si existe una id de alumno. Si existe se pide ese alumno
7+
//-- sino se piden todos.
8+
if (req.query.id != undefined) {
9+
sql = `SELECT AVG(mark) AS nota_media_del_Alumno FROM marks WHERE student_id=?`;
10+
}
11+
12+
//-- Envío de los datos optenidos por la petición.
13+
try {
14+
const [result] = await pool.query(sql,params);
15+
res.send(result);
16+
} catch (error) {
17+
res.send(error)
18+
}
519
}
620

7-
const getAsignaturasAlumnos = (req,res)=>{
8-
console.log('Obtenemos los alumnos y las asignaturas a las que estan apuntados');
21+
async function getAsignaturasAlumnos(req,res){
22+
const params = [req.query.id];
23+
let sql;
24+
//-- comprobar si existe una id de alumno. Si existe se pide ese alumno
25+
//-- sino se piden todos.
26+
if (req.query.id != undefined) {
27+
sql = `SELECT first_name, last_name, title FROM students AS s INNER JOIN subjects AS sub ON (s.group_id=sub.subject_id) WHERE student_id=?`;
28+
}else{
29+
sql = `SELECT first_name, last_name, title FROM students AS s INNER JOIN subjects AS sub ON (s.group_id=sub.subject_id);`;
30+
}
31+
32+
//-- Envío de los datos optenidos por la petición.
33+
try {
34+
const [result] = await pool.query(sql,params);
35+
res.send(result);
36+
} catch (error) {
37+
res.send(error)
38+
}
939
}
1040

11-
const getAsignaturasProfesores = (req,res)=>{
12-
console.log('Obtenemos los profesores y las asignaturas que imparten');
41+
async function getAsignaturasProfesores(req,res){
42+
const params = [req.query.id];
43+
let sql;
44+
//-- comprobar si existe una id de alumno. Si existe se pide ese alumno
45+
//-- sino se piden todos.
46+
if (req.query.id != undefined) {
47+
sql = `SELECT first_name AS teacher_name, last_name AS teacher_lastname, sub.title AS subjects FROM teachers AS t
48+
JOIN subject_teacher AS st ON t.teacher_id=st.teacher_id
49+
JOIN subjects AS sub ON st.subject_id=sub.subject_id
50+
WHERE t.teacher_id = ?
51+
GROUP BY first_name, last_name, sub.title;`;
52+
}else{
53+
sql = `SELECT first_name AS teacher_name, last_name AS teacher_lastname, sub.title AS subjects FROM teachers AS t
54+
JOIN subject_teacher AS st ON t.teacher_id=st.teacher_id
55+
JOIN subjects AS sub ON st.subject_id=sub.subject_id
56+
GROUP BY first_name, last_name, sub.title;`;
57+
}
58+
59+
//-- Envío de los datos optenidos por la petición.
60+
try {
61+
const [result] = await pool.query(sql,params);
62+
res.send(result);
63+
} catch (error) {
64+
res.send(error)
65+
}
1366
}
1467

1568
module.exports = { getMedia, getAsignaturasAlumnos, getAsignaturasProfesores };

0 commit comments

Comments
 (0)