Cantilever-Labs/controllers/course.js

112 lines
2.5 KiB
JavaScript

const Course = require('../models/Course') ;
const CourseType = require('../models/CourseType') ;
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 ;
if(name)
{
name = name.trim() ;
}
if(mentor)
{
mentor = mentor.trim() ;
}
if(totalLectures)
{
totalLectures = Number(totalLectures) ;
}
let course = new Course({
name : name ,
mentor : mentor ,
totalLectures : totalLectures
}) ; ;
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"
})
}
}