File: //home/evaluation-leave/controllers/grantController.js
const Grant = require("../models/grants");
module.exports = {
grantsEvaluations: async (req, res) => {
try {
const result = await Grant.findAllGrants();
if (!result) {
return res
.status(404)
.json({ message: "Sorry no data for grantsEvaluation setup." });
}
console.log(`grantsEvaluation, 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" });
}
},
grantsEvaluationById: async (req, res) => {
const { id } = req.body;
try {
const result = await Grant.findGrantById(id);
if (!result) {
return res.status(404).json({
message: "Sorry their is no grantsEvaluation with that id.",
});
}
console.log(
`GrantEvaluation 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" });
}
},
pendingGrantsEvaluation: async (req, res) => {
try {
const result = await Grant.findPendingGrantsRecord(req.userId);
if (!result) {
return res.status(404).json({
message: "Sorry no Pending GrantsEvaluation for this user.",
});
}
console.log(
`Pending GrantEvaluation for user with id ${
req.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" });
}
},
actionDvcGrantEvaluation: async (req, res) => {
const { userId, sessionId } = req.body;
try {
const dvcData = {
userId,
sessionId,
};
const result = await Grant.findGrantsForEvaluationDvc(dvcData);
if (!result) {
return res.status(404).json({
message: "Sorry no GrantEvaluation recored for this user.",
});
}
console.log(
`Existing GrantEvaluation for user with id ${
dvcData.userId
}, successfully pulled on ${new Date()} by DVC `
);
return res.status(200).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
createCourseEvaluation: async (req, res) => {
const {
matrixId,
sessionId,
grants_submited,
grants_earned,
grants_innovation,
grants_activity_participated,
} = req.body;
try {
const newGrantEvaluation = {
userId: req.userId,
matrixId,
sessionId,
grants_submited,
grants_earned,
grants_innovation,
grants_activity_participated,
created_by: req.userId,
self_submite_yn: "Y",
};
const result = await Grant.createGrant(newGrantEvaluation);
console.log(
`successfully Created an anew GrantEvaluation Record 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" });
}
},
updateGrantEvaluation: async (req, res) => {
const {
id,
grants_innovation,
grants_submited_h,
grants_earned_h,
grants_activity_participated_h,
grants_innovation_h,
} = req.body;
console.log(req.body);
try {
const serv = await Grant.findGrantById(id);
if (!serv) {
return res.status(400).json({
message: "Sorry there seems to be a problem. Try again latter",
});
}
const updatedGrantEvaluation = {
id,
grants_innovation,
grants_submited_h,
grants_earned_h,
grants_activity_participated_h,
grants_innovation_h,
updated_by: req.userId,
updatedAt: new Date(),
hod_submited_yn: "Y",
};
const result = await Grant.updateGrant(updatedGrantEvaluation);
console.log(
`successfully Updated GrantEvaluation ${
updatedGrantEvaluation.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" });
}
},
grantForUserCompilation: async (req, res) => {
const { sessionId } = req.body;
try {
const userData = {
userId: req.userId,
sessionId,
};
const result = await Grant.findUserGrantsForCompilation(userData);
if (!result) {
return res.status(404).json({
message: "Sorry no GrantEvaluation recored for this user.",
});
}
console.log(
`Existing User GrantEvaluation for user with id ${
userData.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" });
}
},
grantForHodCompilation: async (req, res) => {
const { userId, sessionId } = req.body;
try {
const hodData = {
userId,
sessionId,
};
const result = await Grant.findHodGrantsForCompilation(hodData);
if (!result) {
return res.status(404).json({
message: "Sorry no GrantEvaluation recored for this user.",
});
}
console.log(
`Existing HOD GrantEvaluation for user with id ${
hodData.userId
}, successfully pulled on ${new Date()} by ${req.email} `
);
return res.status(200).json(result);
} catch (error) {
console.error("Error occurred:", error);
res.status(500).json({ error: true, message: "Internal Server Error" });
}
},
};