diff --git a/PROF-XXI FW Tool/server/controllers/GlobalAnalysis.js b/PROF-XXI FW Tool/server/controllers/GlobalAnalysis.js new file mode 100644 index 0000000000000000000000000000000000000000..d39ff8359536a18d6d87fb460725b7e0054ae9c9 --- /dev/null +++ b/PROF-XXI FW Tool/server/controllers/GlobalAnalysis.js @@ -0,0 +1,117 @@ +const db = require("../database/database"); + +exports.getAllUnivs = async (req, res) => { + db.query("SELECT DISTINCT organizationName FROM users", (err, result) => { + if (result) { + res.json({ univsResult: result }); + } + }); +}; + +exports.getAllUnits = async (req, res) => { + const univ = req.params.univ; + db.query( + "SELECT units.idunit, units.name, units.type, units.description, units.access, unitgeneration.email, users.organizationName FROM units JOIN unitgeneration JOIN users ON unitgeneration.idunit = units.idunit AND users.email = unitgeneration.email WHERE organizationName = ? AND units.access LIKE 'Public'", + [univ], + (err, result) => { + res.json({ unitsResult: result }); + } + ); +}; + +exports.barDataUniv = async (req, res) => { + const university = req.params.university; + const data = { + Teacher: { + AVG_A: "0", + AVG_B: "0", + AVG_C: "0", + AVG_D: "0", + AVG_E: "0", + }, + Administrator: { + AVG_A: "0", + AVG_B: "0", + AVG_C: "0", + AVG_D: "0", + AVG_E: "0", + }, + Manager: { AVG_A: "0", AVG_B: "0", AVG_C: "0", AVG_D: "0", AVG_E: "0" }, + }; + db.query( + "Select AVG(A) as AVG_A, AVG(B) as AVG_B, AVG(C) as AVG_C, AVG(D) as AVG_D, AVG(E) as AVG_E, a.participantposition FROM answers a JOIN questionnaires q JOIN users u ON u.email = q.email AND a.idquestionnaire = q.idquestionnaire WHERE u.organizationName = ? GROUP BY a.participantposition", + [university], + (err, result) => { + if (result) { + let i = 0; + while (result[i]) { + data[result[i].participantposition] = { + AVG_A: result[i].AVG_A, + AVG_B: result[i].AVG_B, + AVG_C: result[i].AVG_C, + AVG_D: result[i].AVG_D, + AVG_E: result[i].AVG_E, + }; + i = i + 1; + } + + //for (let i = 0; i < 3; i++) { + + //} + res.json({ barData: data }); + } else { + console.log(err); + } + } + ); +}; + +exports.hbarDataUniv = async (req, res) => { + const university = req.params.university; + const data = { + Teacher: { + AVG_L1: "0", + AVG_L2: "0", + AVG_L3: "0", + AVG_L4: "0", + AVG_L5: "0", + }, + Administrator: { + AVG_L1: "0", + AVG_L2: "0", + AVG_L3: "0", + AVG_L4: "0", + AVG_L5: "0", + }, + Manager: { + AVG_L1: "0", + AVG_L2: "0", + AVG_L3: "0", + AVG_L4: "0", + AVG_L4: "0", + }, + }; + + db.query( + "SELECT AVG(L1) as AVG_L1, AVG(L2) as AVG_L2, AVG(L3) as AVG_L3, AVG(L4) as AVG_L4, AVG(L5) as AVG_L5, a.participantposition FROM answers a JOIN questionnaires q JOIN users u ON u.email = q.email AND a.idquestionnaire = q.idquestionnaire WHERE u.organizationName = ? GROUP BY a.participantposition", + [university], + (err, result) => { + if (result) { + let i = 0; + while (result[i]) { + data[result[i].participantposition] = { + AVG_L1: result[i].AVG_L1, + AVG_L2: result[i].AVG_L2, + AVG_L3: result[i].AVG_L3, + AVG_L4: result[i].AVG_L4, + AVG_L5: result[i].AVG_L5, + }; + i = i + 1; + } + + //for (let i = 0; i < 3; i++) {} + res.json({ hbarData: data }); + } + } + ); +};