Fixed backend issue, update course status working
This commit is contained in:
@@ -1,6 +1,13 @@
|
||||
const mongoose = require("mongoose");
|
||||
const { v4: uuidv4 } = require("uuid");
|
||||
|
||||
const AppointmentSchema = new mongoose.Schema({
|
||||
appointmentId: {
|
||||
type: String,
|
||||
required: true,
|
||||
unique: true,
|
||||
default: uuidv4
|
||||
},
|
||||
facultyId: { type: String, required: true },
|
||||
facultyName: { type: String, required: true },
|
||||
courseId: { type: String, required: true },
|
||||
@@ -9,3 +16,5 @@ const AppointmentSchema = new mongoose.Schema({
|
||||
});
|
||||
|
||||
module.exports = mongoose.model("Appointment", AppointmentSchema);
|
||||
|
||||
|
||||
|
||||
@@ -35,4 +35,39 @@ router.get("/:id", async (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
// Update course status route
|
||||
router.patch("/api/courses/:courseId", async (req, res) => {
|
||||
try {
|
||||
const { courseId } = req.params; // Extract courseId from params
|
||||
const { status } = req.body; // Extract status from body
|
||||
|
||||
console.log("Request params:", req.params);
|
||||
console.log("Request body:", req.body);
|
||||
|
||||
// Validate status
|
||||
if (!["submitted", "not submitted"].includes(status.toLowerCase())) {
|
||||
return res.status(400).json({ message: "Invalid status value" });
|
||||
}
|
||||
|
||||
// Find and update the course by courseId
|
||||
const updatedCourse = await Course.findOneAndUpdate(
|
||||
{ courseId }, // Query by courseId field
|
||||
{ status: status.toLowerCase() }, // Set status (convert to lowercase)
|
||||
{ new: true } // Return the updated document
|
||||
);
|
||||
|
||||
if (!updatedCourse) {
|
||||
console.error("Course not found:", courseId);
|
||||
return res.status(404).json({ message: "Course not found" });
|
||||
}
|
||||
|
||||
console.log("Updated course:", updatedCourse);
|
||||
res.status(200).json(updatedCourse);
|
||||
} catch (error) {
|
||||
console.error("Error updating course status:", error.message);
|
||||
res.status(500).json({ message: "Internal server error" });
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
module.exports = router;
|
||||
|
||||
@@ -14,6 +14,7 @@ const courseRoutes = require("./routes/courseRoutes");
|
||||
const facultyRoutes = require("./routes/facultyRoutes");
|
||||
const appointmentRoutes = require("./routes/appointmentRoutes");
|
||||
const optionsRoutes = require("./routes/optionsRoutes");
|
||||
const Course = require("./models/Course");
|
||||
|
||||
// MongoDB Connection
|
||||
mongoose
|
||||
@@ -152,6 +153,39 @@ app.get("/api/user/profile", async (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
app.patch("/api/courses/:courseId", async (req, res) => {
|
||||
const { courseId } = req.params;
|
||||
const { status } = req.body;
|
||||
|
||||
console.log('Request params:', req.params);
|
||||
console.log('Request body:', req.body);
|
||||
|
||||
if (!status) {
|
||||
console.error("Status is missing in the request body.");
|
||||
return res.status(400).json({ message: "Status is required" });
|
||||
}
|
||||
|
||||
try {
|
||||
const updatedCourse = await Course.findOneAndUpdate(
|
||||
{ courseId: courseId }, // Use courseId field for finding the course
|
||||
{ status }, // Update the status field
|
||||
{ new: true }// Return the updated document
|
||||
);
|
||||
|
||||
if (!updatedCourse) {
|
||||
console.error("Course not found:", courseId);
|
||||
return res.status(404).json({ message: "Course not found" });
|
||||
}
|
||||
|
||||
res.json(updatedCourse);
|
||||
} catch (error) {
|
||||
console.error("Error updating course status:", error.message);
|
||||
res.status(500).json({ message: "Internal server error" });
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
// Serve React Build Files
|
||||
app.use(express.static(path.join(__dirname, "../client/build")));
|
||||
app.get("*", (req, res) =>
|
||||
|
||||
Reference in New Issue
Block a user