const courses = require("../controllers/Course.controller.js"); const db = require(".."); var router = require("express").Router(); // Create a new Course router.post("/", courses.create); // GET AWARD router.get("/", async (req, res) => { const id = req.query.id; if (!id) { return db.Course.findAll() .then(results => res.send(results)) } return db.Course.findByPk(id) .then(async (course) => { if (course === null) { res.status(404).send({ message: `Course with id=${id} was not found!` }); return } res.send(course) }) .catch(err => { res.status(500).send({ message: err.message || "Some error occurred while retrieving courses." }) }) }); // GET AWARD DETAILS router.get("/details", async (req, res) => { const id = req.query.id; if (!id) { res.status(400).send({ message: "Course id cannot be empty!" }); return } return db.Course.findByPk(id, { include: [ 'trainingsHeld', 'possibleAwards', 'sme' ] }) .then(async (course) => { if (course === null) { res.status(404).send({ message: `Course with id=${id} was not found!` }); return } res.send(course) }) .catch(err => { res.status(500).send({ message: err.message || "Some error occurred while retrieving courses." }) }) }); // GET CATEGORIES router.get("/categories", async (req, res) => { return db.Course.findAll({ attributes: ['category'], group: ['category'] }) .then(async (courseCategories) => { if (courseCategories === null) { res.status(404).send({ message: `Course categories were not found!` }); return } res.send(courseCategories.map(courseCategory => courseCategory.category)) }) .catch(err => { res.status(500).send({ message: err.message || "Some error occurred while retrieving course categories." }) }) }); module.exports = { apiPath: "/api/courses", apiRouter: router };