diff options
Diffstat (limited to 'poll/index.js')
-rw-r--r-- | poll/index.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/poll/index.js b/poll/index.js new file mode 100644 index 0000000..ab9ee6f --- /dev/null +++ b/poll/index.js @@ -0,0 +1,34 @@ +const express = require("express"); +const db = require("../db"); +const app = express.Router(); +const { checkUser } = require("../auth"); + +app.use("/", checkUser, express.static(__dirname + "/public")); + +app.post("/api/answer", checkUser, async (req, res) => { + if (!req.body.answer || !req.body.question) return res.send("error"); + try { + await db.query("INSERT INTO ranking_answers (question_id, user_id, answer_id) VALUE (?,?,?)", [ + parseInt(req.body.question), + req.session.uid, + parseInt(req.body.answer), + ]); + res.redirect("/poll"); + } catch (e) { + console.error(e); + res.json("error"); + } +}); + +app.get("/api/get", checkUser, async (req, res) => { + // TODO: Add teacher questions + const question = ( + await db.query( + "SELECT q.id, q.question, t.name FROM ranking_questions AS q INNER JOIN types AS t ON type_id = t.id WHERE q.id NOT IN (SELECT question_id FROM ranking_answers WHERE user_id = ?) AND t.name = 'pupil' LIMIT 1", + [req.session.uid] + ) + )[0]; + res.json(question); +}); + +module.exports = app; |