ZoeApi/controllers/exerciseController.js

139 lines
4.3 KiB
JavaScript

require('../connections/mysql-server');
require('../helpers/CheckToken');
const express = require('express');
const router = express.Router();
const bodyParser = require('body-parser');
router.use(bodyParser.urlencoded({ extended: true }));
router.use(bodyParser.json());
var routes = function () {
router.get('/', verifyJWT, (req, res) => {
execSQLQuery(`SELECT
*
FROM exercises;`, res, req.originalUrl);
});
router.get('/types', verifyJWT, (req, res) => {
execSQLQuery(`SELECT
*
FROM exercisetype
WHERE enabled = 1;`, res, req.originalUrl);
});
// router.get('/getExercise/:id', verifyJWT, (req, res) => {
// let id = req.params.id;
// execSQLQuery(`
// SELECT
// e.idexercises as 'exercise_id',
// e.description as 'exercise_desc',
// e.idexercisetype as 'exercise_type',
// eq.idexercisequestions as 'question_id',
// eq.content as question,
// ea.idexerciseanswers as 'answer_id',
// ea.content as answer
// FROM exercises e
// JOIN exercisequestions eq ON e.idexercises = eq.idexercises
// JOIN exerciseanswers ea ON eq.idexercisequestions = ea.idexercisequestions
// WHERE e.idexercises = ${id}
// ORDER BY eq.idexercisequestions, ea.idexerciseanswers ASC;`,
// res,
// req.originalUrl
// );
// })
router.get('/getExercise2/:idexercises', verifyJWT, (req, res) => {
const idexercises = parseInt(req.params.idexercises);
execSQLQuery(`SELECT
*
FROM exercises
WHERE idexercises = ${idexercises};`, res, req.originalUrl);
});
router.get('/:idexercises/getQuestions', verifyJWT, function (req, res, next) {
const idexercises = req.params.idexercises;
execSQLQuery(`SELECT
*
FROM exercisequestions
WHERE idexercises = ${idexercises};`, res, req.originalUrl);
});
router.get('/:idexercisequestions/getQuestionsById', verifyJWT, function (req, res, next) {
const idexercisequestions = parseInt(req.params.idexercisequestions);
execSQLQuery(`SELECT
*
FROM exercisequestions
WHERE idexercisequestions = ${idexercisequestions};`, res, req.originalUrl);
});
router.get('/getExercise/:idexercises', verifyJWT, function (req, res, next) {
const idexercises = parseInt(req.params.idexercises);
execSQLQuery(`SELECT
e.description,
e.enabled,
e.idexercises,
e.idexercisetype,
cc.idclasses
FROM exercises e
JOIN classescontent cc ON e.idexercises = cc.idexercises
WHERE e.idexercises = ${idexercises};`, res, req.originalUrl);
});
router.get('/:id/getExercises', verifyJWT, function (req, res, next) {
const idclasses = parseInt(req.params.idclasses);
execSQLQuery(`SELECT
*
FROM exercises
WHERE idclasses = ${idclasses};`, res, req.originalUrl);
});
router.post('/insert', verifyJWT, function (req, res) {
const description = req.body.description;
const idexercisetype = parseInt(req.body.idexercisetype);
const enabled = req.body.enabled ? 1 : 0;
execSQLQuery(`INSERT INTO exercises (idexercisetype, description, hasmedia, enabled)
VALUES (?, ?, 0, ?);`, res, req.originalUrl, [idexercisetype, description, enabled]);
});
router.patch('/update', verifyJWT, function (req, res) {
const idexercises = parseInt(req.body.idexercises);
const description = req.body.description;
const idexercisetype = parseInt(req.body.idexercisetype);
const enabled = req.body.enabled ? 1 : 0;
execSQLQuery(`UPDATE exercises SET
description = ?,
idexercisetype = ?,
enabled = ?
WHERE idexercises = ?;`, res, req.originalUrl, [description, idexercisetype, enabled, idexercises]);
});
router.get('/allExercises', (req, res) => {
execSQLQuery(`SELECT
*
FROM exercises;`, res, req.originalUrl);
});
router.get('/allExerciseQuestions', verifyJWT, (req, res) => {
execSQLQuery(`SELECT
*
FROM exercisequestions;`, res, req.originalUrl);
});
router.get('/allExerciseAnswers', verifyJWT, (req, res) => {
execSQLQuery(`SELECT
*
FROM exerciseanswers;`, res, req.originalUrl);
});
router.get('/allExerciseType', verifyJWT, (req, res) => {
execSQLQuery(`SELECT
*
FROM exercisetype;`, res, req.originalUrl);
});
return router;
};
module.exports = routes;