const Course = require('../models/Course') ; const CourseType = require('../models/CourseType') ; const User = require('../models/User') ; module.exports.postAddCourse = async (req , res , next) => { try { //we will take input as name , mentor and totalLectures let name = req.body.name ; let mentor = req.body.mentor ; let totalLectures = req.body.totalLectures ; let route = req.body.route if(name) { name = name.trim() ; } if(mentor) { mentor = mentor.trim() ; } if(route) { route = route.trim() ; } if(totalLectures) { totalLectures = Number(totalLectures) ; } let course = new Course({ name : name , mentor : mentor , totalLectures : totalLectures , route : route }) ; ; course = await course.save() ; //tier 1 let tier1 = new CourseType({ name : course.name , amount : 7000 , tier : 1 , course : course._id }) tier1 = await tier1.save() ; //tier 2 let tier2 = new CourseType({ name : course.name , amount : 5000 , tier : 2 , course : course._id }) tier2 =await tier2.save() ; //tier 3 let tier3 = new CourseType({ name : course.name , amount : 3000 , tier : 3 , course : course._id }) tier3 = await tier3.save() ; course.types.tier1 = tier1 ; course.types.tier2 = tier2 ; course.types.tier3 = tier3 ; await course.save() ; res.json({ success: "Successfully created" }) } catch(err) { console.log(err); res.json({ error : err }) } } module.exports.getAllCourses = async (req , res , next) => { try { //we will be getting all the courses here const courses = await Course.find().populate("types.tier1").populate("types.tier2").populate("types.tier3") ; res.json({ courses : courses }) } catch { res.json({ error : "error" }) } } module.exports.getMeetSchedule = async (req , res , next) => { try { //we need courseTypeId as input const courseId = req.body.courseId ; const course = await CourseType.findById(courseId).populate("course") ; res.json({ courses : course }) } catch(err) { res.json({ error : "error" }) } } module.exports.getSingleParCourse = async (req , res , next) => { try{ const parCourseId = req.body.parCourseId ; console.log(parCourseId) ; const course = await Course.findById(parCourseId).populate("types.tier1").populate("types.tier2").populate("types.tier3") ; res.json({ course : course }) } catch(err) { res.json({ error : "error" }) } } module.exports.getTierCourse = async (req , res , next) => { try{ //we need courseTypeId as input const courseId = req.body.courseId ; const course = await CourseType.findById(courseId).populate("course") ; res.json({ course : course }) } catch(err) { res.json({ error : "error" }) } } module.exports.getFromRoute = async (req , res , next) => { try{ const route = req.query.route ; const course = await Course.findOne({route :route}).populate("types.tier1").populate("types.tier2").populate("types.tier3") ; console.log(course); res.json({ course : course }) } catch(err) { res.json({ error : "error" }) } } module.exports.addClick = async (req , res , next) => { try { const route = req.body.route ; const userId = req.user._id ; let user = await User.findById(userId) ; let clicked = {...user.clicked} ; if(!clicked[route]) { clicked[route] = 0 ; } clicked[route] = clicked[route] + 1 ; user.clicked = clicked ; await user.save() ; res.json({ data : "added click" }) ; } catch(err) { res.json({ error : err }) } }