File: //home/evaluation-leave/controllers/evalluationcontoller.js
const Evaluation = require("../models/evaluation");
module.exports = {
evaluations: async (req, res) => {
try {
const result = await Evaluation.findAllEvaluations();
if (!result) {
return res
.status(404)
.json({ message: "Sorry no Evaluations captured so far." });
}
console.log(`All Evaluations, successfully pulled on ${new Date()} `);
return res.status(200).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
evaluationsForSession: async (req, res) => {
const { session_id } = req.body;
try {
const result = await Evaluation.findAllEvaluationsForSession(session_id);
if (!result) {
return res.status(404).json({
message:
"Sorry no Evaluations captured so for the session." + session_,
});
}
console.log(
`Evaluations for session ${session_id}, successfully pulled on ${new Date()} `
);
return res.status(200).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
evaluationById: async (req, res) => {
const { id } = req.body;
try {
const result = await Evaluation.findEvaluationById(id);
if (!result) {
return res
.status(404)
.json({ message: "Sorry that Evaluation does not exist." });
}
console.log(
`Evaluation with id ${id}, successfully pulled on ${new Date()} `
);
return res.status(200).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
evaluationForHod: async (req, res) => {
const { id } = req.body;
try {
const result = await Evaluation.findEvaluationByHodId(id);
if (!result) {
return res
.status(404)
.json({ message: "Sorry that Evaluation does not exist." });
}
console.log(
`Evaluation HOD with id ${id}, successfully pulled on ${new Date()} `
);
return res.status(200).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
myEvaluations: async (req, res) => {
// const { id } = req.b
const userId = req.userId;
try {
const result = await Evaluation.findPersonalEvaluation(userId);
if (!result) {
return res
.status(404)
.json({ message: "Sorry We can not find Evaluation for user." });
}
console.log(
`Evaluations for user with id ${userId}, successfully pulled on ${new Date()} `
);
return res.status(200).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
createEvaluation: async (req, res) => {
const {
session_id,
course_id,
scholar_id,
grants_id,
service_id,
professionalism_id,
self_rating,
self_comment,
} = req.body;
try {
const newEvaluation = {
user_id: req.userId,
session_id,
course_id,
scholar_id,
grants_id,
service_id,
professionalism_id,
self_rating,
self_comment,
created_by: req.userId,
};
const result = await Evaluation.createEvaluation(newEvaluation);
console.log(`successfully Created an anew Evaluation on ${new Date()}`);
return res.status(201).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
updateAvailableUserEvaluation: async (req, res) => {
const {
id,
supervisor_rating,
supervisor_comment,
supervisor_recommendation,
} = req.body;
//console.log("Supervisor:", req.body);
try {
const serv = await Evaluation.findEvaluationById(id);
if (!serv) {
return res.status(400).json({
message: "Sorry there seems to be a problem. Try again latter",
});
}
const updatedEvaluation = {
id,
hod_id: req.userId,
supervisor_rating,
supervisor_comment,
supervisor_recommendation,
hod_id: req.userId,
status: "Evaluated",
updated_by: req.userId,
updated_at: new Date(),
};
const result = await Evaluation.updateEvaluation(updatedEvaluation);
console.log(
`successfully Updated Evaluation with ID ${
updatedEvaluation.id
} at ${new Date()}`
);
return res.status(201).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
dvcRecomendEvaluation: async (req, res) => {
const { id, dvc_recommendation } = req.body;
try {
const serv = await Evaluation.findEvaluationById(id);
if (!serv) {
return res.status(400).json({
message: "Sorry there seems to be a problem. Try again latter",
});
}
const dvcRecommendation = {
id,
dvc_recommendation,
status: "Recommended",
updated_by: req.userId,
updated_at: new Date(),
};
const result = await Evaluation.dvcRecommendEvaluation(dvcRecommendation);
console.log(
`DVC successfully Recommended Evaluation with ID ${
dvcRecommendation.id
} at ${new Date()}`
);
return res.status(201).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
vcRecomendEvaluation: async (req, res) => {
const { id, vc_recommendation } = req.body;
try {
const serv = await Evaluation.findEvaluationById(id);
if (!serv) {
return res.status(400).json({
message: "Sorry there seems to be a problem. Try again latter",
});
}
const vcRecommendation = {
id,
vc_recommendation,
status: "Recommended",
updated_by: req.userId,
updated_at: new Date(),
};
const result = await Evaluation.vcRecommendEvaluation(vcRecommendation);
console.log(
`VC successfully Recommended Evaluation with ID ${
updatedEvaluation.id
} at ${new Date()}`
);
return res.status(201).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
// Reports
evaluationEvaluatedGraphReport: async (req, res) => {
const { session_id } = req.body;
try {
const result = await Evaluation.findCompletedEvaluationsGraph(session_id);
if (!result) {
return res.status(404).json({
message: "Grphical report for this session can not be pulled.",
});
}
console.log(
`Graphical report for session ${session_id}, successfully pulled on ${new Date()} `
);
return res.status(200).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
// Users exceeding Expectation
evaluationUsersExceGraphReport: async (req, res) => {
const { session_id } = req.body;
try {
const result = await Evaluation.findUsersExceedExpeGraph(session_id);
if (!result) {
return res.status(404).json({
message: "Grphical report for this session can not be pulled.",
});
}
console.log(
`Graphical report for Users exceeding expectation ${session_id}, successfully pulled on ${new Date()} `
);
return res.status(200).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
// Users Who met Expectation
evaluationUsersMetGraphReport: async (req, res) => {
const { session_id } = req.body;
try {
const result = await Evaluation.findUsersMetExpeGraph(session_id);
if (!result) {
return res.status(404).json({
message: "Grphical report for this session can not be pulled.",
});
}
console.log(
`Graphical report for Users who met expectation ${session_id}, successfully pulled on ${new Date()} `
);
return res.status(200).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
// Users Aproaching Expectation
evaluationUsersApproachingGraphReport: async (req, res) => {
const { session_id } = req.body;
try {
const result = await Evaluation.findUsersAproachingExpeGraph(session_id);
if (!result) {
return res.status(404).json({
message: "Grphical report for this session can not be pulled.",
});
}
console.log(
`Graphical report for Users approaching expectation ${session_id}, successfully pulled on ${new Date()} `
);
return res.status(200).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
// Users Wh failed to meet Expectation
evaluationUsersFailedGraphReport: async (req, res) => {
const { session_id } = req.body;
try {
const result = await Evaluation.findUsersFailedExpeGraph(session_id);
if (!result) {
return res.status(404).json({
message: "Grphical report for this session can not be pulled.",
});
}
console.log(
`Graphical report for Users Who failed to meet expectation ${session_id}, successfully pulled on ${new Date()} `
);
return res.status(200).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
// General faculty performance
evaluationGeneralFucultyGraphReport: async (req, res) => {
const { session_id } = req.body;
try {
const result = await Evaluation.findFacultyGeneralResultGraph(session_id);
if (!result) {
return res.status(404).json({
message: "Grphical report for this session can not be pulled.",
});
}
console.log(
`Graphical report for General fuculty performance for session ${session_id}, successfully pulled on ${new Date()} `
);
return res.status(200).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
};