TODO: change api.conf URL references to use environment variables and add these variables to the docker-compose configuration for host domain
96 lines
2.1 KiB
JavaScript
96 lines
2.1 KiB
JavaScript
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
|
|
}; |