From 919dadf0711f05c2a0c6f90a769cff0aa50aff92 Mon Sep 17 00:00:00 2001 From: ttabirami12062 Date: Sun, 27 Apr 2025 21:49:36 -0500 Subject: [PATCH] Fixed module imports, added Submission model, cleaned approvalRoutes --- server/Submission.js | 10 +++++++++ server/models/Submission.js | 10 +++++++++ server/routes/approvalRoutes.js | 38 +++------------------------------ server/services/insertData.js | 11 +++++----- 4 files changed, 28 insertions(+), 41 deletions(-) create mode 100644 server/Submission.js create mode 100644 server/models/Submission.js diff --git a/server/Submission.js b/server/Submission.js new file mode 100644 index 00000000..c75c9d0a --- /dev/null +++ b/server/Submission.js @@ -0,0 +1,10 @@ +const mongoose = require('mongoose'); + +const SubmissionSchema = new mongoose.Schema({ + student: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true }, + internshipRequest: { type: mongoose.Schema.Types.ObjectId, ref: 'InternshipRequest' }, + status: { type: String, default: 'pending' }, + submittedAt: { type: Date, default: Date.now }, +}); + +module.exports = mongoose.model('Submission', SubmissionSchema); diff --git a/server/models/Submission.js b/server/models/Submission.js new file mode 100644 index 00000000..c75c9d0a --- /dev/null +++ b/server/models/Submission.js @@ -0,0 +1,10 @@ +const mongoose = require('mongoose'); + +const SubmissionSchema = new mongoose.Schema({ + student: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true }, + internshipRequest: { type: mongoose.Schema.Types.ObjectId, ref: 'InternshipRequest' }, + status: { type: String, default: 'pending' }, + submittedAt: { type: Date, default: Date.now }, +}); + +module.exports = mongoose.model('Submission', SubmissionSchema); diff --git a/server/routes/approvalRoutes.js b/server/routes/approvalRoutes.js index 748b7756..1a2a7bb0 100644 --- a/server/routes/approvalRoutes.js +++ b/server/routes/approvalRoutes.js @@ -18,12 +18,11 @@ const InternshipRequest = require("../models/InternshipRequest"); // Supervisor APIs router.get("/supervisor/forms", isSupervisor, (req, res) => { - // const supervisorId = req.user._id, return getSupervisorForms(req, res, { - // supervisor_id: supervisorId, supervisor_status: { $in: ["pending"] }, - }) + }); }); + // Approve route router.post("/supervisor/form/:type/:id/approve", isSupervisor, (req, res) => handleSupervisorFormAction(req, res, "approve") @@ -44,37 +43,6 @@ router.get("/coordinator/request/:id", isCoordinator, getCoordinatorRequestDetai router.post("/coordinator/request/:id/approve", isCoordinator, coordinatorApproveRequest); router.post("/coordinator/request/:id/reject", isCoordinator, coordinatorRejectRequest); -const approveFormA3 = async (req, res) => { - const { formId } = req.params; - - try { - //find the form by formId - const form = await Evaluation.findById(formId); - - if (!form) { - return res.status(404).json({ message: "Form not found" }); - } - - //check if form is already locked - if (form.locked) { - return res.status(403).json({ message: "This form is locked and cannot be edited." }); - } - - //approve the form - form.status = "approved"; - - //lock the form after approval by coordinator - form.locked = true; - - await form.save(); - - return res.status(200).json({ message: "Form A.3 approved and locked successfully!" }); - } catch (err) { - console.error("Error approving form A.3:", err); - return res.status(500).json({ message: "Something went wrong" }); - } -}; - // NEW Coordinator API: Approve Form A.3 router.post("/coordinator/form-a3/:formId/approve", isCoordinator, approveFormA3); @@ -100,4 +68,4 @@ router.post("/form/:formId/approve", async (req, res) => { } }); -module.exports = router; \ No newline at end of file +module.exports = router; diff --git a/server/services/insertData.js b/server/services/insertData.js index 83c10d1a..98574ffd 100644 --- a/server/services/insertData.js +++ b/server/services/insertData.js @@ -1,13 +1,12 @@ const mongoose = require("mongoose"); -const InternshipRequest = require("../server/models/InternshipRequest"); -const User = require("../server/models/User"); // Make sure User model is imported properly -const Submission = require("../server/models/Submission"); +const InternshipRequest = require("../models/InternshipRequest"); +const User = require("../models/User"); +const Submission = require("../models/Submission"); async function insertFormData(formData) { try { console.log("Received Form Data:\n", JSON.stringify(formData, null, 2)); - // Dynamically find the student based on email const student = await User.findOne({ email: formData.email }); if (!student) { @@ -15,7 +14,7 @@ async function insertFormData(formData) { } const formattedData = { - student: student._id, // ✅ Real user's ID from database + student: student._id, workplace: { name: formData.workplaceName, website: formData.website, @@ -58,4 +57,4 @@ async function insertFormData(formData) { module.exports = { insertFormData, -}; \ No newline at end of file +};