StMarkSchoolApplication / app / controller / levelController.js
levelController.js
Raw
const db = require('../config/db.config.js');
const Level = db.level;
const Course = db.course;

/**
 * Create a level
 */
exports.createLevel = (req, res) => {
	Level.create({
		name: req.body.name
	}).then(level => {
		// set created level as next_level to it's prev
		if (req.body.prev_level_id) {
			Level.find({ where: { id: req.body.prev_level_id } }
			).then(prev_level => {
				prev_level.update({ next_level: level.id })
			}).catch(err => {
				res.status(500).send("Error -> " + err);
			});
		}
		// end of set created level as next_level to it's prev
		res.status(200).json({
			"description": "Level Created Successfully",
			"level": level
		});
	}).catch(err => {
		res.status(500).send("Fail! Error -> " + err);
	})
}

/**
 * Get levels with it's courses
 */
exports.getLevels = (req, res) => {
	Level.findAll({
		attributes: ['name'],
		include: [{
			model: Course,
		}]
	}).then(levels => {
		res.status(200).json({
			"description": "levels Page",
			"levels": levels
		});
	}).catch(err => {
		res.status(500).json({
			"description": "Can not access levels Page",
			"error": err
		});
	})
}

/**
 * Get levels with it's courses
 */
exports.getLevel = (req, res) => {
	Level.findOne({
		where: { id: req.body.level_id },
		attributes: ['name'],
		include: [{
			model: Course,
		}]
	}).then(level => {
		res.status(200).json({
			"description": "level page",
			"level": level
		});
	}).catch(err => {
		res.status(500).json({
			"description": "Can not access levels Page",
			"error": err
		});
	})
}