diff --git a/server/controllers/Courses.js b/server/controllers/Courses.js index 024eaa7..de845de 100644 --- a/server/controllers/Courses.js +++ b/server/controllers/Courses.js @@ -436,3 +436,44 @@ exports.deleteCourse = async (req, res) => { }); } }; +//Get filtered courses accoring to price and category +exports.getfilteredCourses = async (req, res) => { + try { + const { price, category } = req.body; + // const courses=await Course.find({price:{$lte:price}}); + if (!price) { + price = 0; + } + let courses; + if (!category) { + console.log("category not found"); + courses = await Course.find({ price: { $lte: price } }) + .populate([ + { path: "instructor", select: "firstName lastName", model: User }, + ]) + .select("courseName price thumbnail instructor"); + } else { + console.log("category found"); + courses = await Course.find({ + price: { $lte: price }, + category: category, + }) + .populate([ + { path: "instructor", select: "firstName lastName", model: User }, + ]) + .select("courseName price thumbnail instructor"); + } + + res.status(200).json({ + success: true, + data: courses, + }); + } catch (error) { + console.error(error); + res.status(500).json({ + success: false, + message: "Server error", + error: error.message, + }); + } +}; diff --git a/server/routes/Course.js b/server/routes/Course.js index 9397ef3..72fd617 100644 --- a/server/routes/Course.js +++ b/server/routes/Course.js @@ -10,6 +10,7 @@ const { getFullCourseDetails, getInstructorCourses, deleteCourse, + getfilteredCourses, } = require("../controllers/Courses"); //Import Category controllers @@ -63,6 +64,7 @@ router.post("/deleteSection", auth, isInstructor, deleteSection); router.post("/addSubSection", auth, isInstructor, createSubSection); router.post("/updateSubSection", auth, isInstructor, updateSubSection); router.post("/deleteSubSection", auth, isInstructor, deleteSubSection); +router.post("/getFilteredCourses", getfilteredCourses); router.get("/getAllCourses", getAllCourses); router.post("/getCourseDetails", getCourseDetails);