From b470a1171d34aa74ebebaae7c1ca9840cfcb60e1 Mon Sep 17 00:00:00 2001 From: AndrewTrieu Date: Fri, 10 Mar 2023 13:17:28 +0200 Subject: [PATCH] Update routes, add gitignore --- .gitignore | 1 + .../routes/controllers/questionController.js | 4 +- drill-and-practice/routes/routes.js | 45 ++++++++++++++++++- 3 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c6f9a44 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vscode/settings.json diff --git a/drill-and-practice/routes/controllers/questionController.js b/drill-and-practice/routes/controllers/questionController.js index 1257d5b..549ebfb 100644 --- a/drill-and-practice/routes/controllers/questionController.js +++ b/drill-and-practice/routes/controllers/questionController.js @@ -80,7 +80,7 @@ const getRandQuestion = async ({ params, response }) => { } }; -const listQuizTopic = async ({ render }) => { +const listQuizTopics = async ({ render }) => { render("quizTopic.eta", { allTopics: await topicService.getAllTopics(), }); @@ -121,7 +121,7 @@ export { deleteQuestion, listQuiz, getRandQuestion, - listQuizTopic, + listQuizTopics, storeAnswer, showCorrect, showIncorrect, diff --git a/drill-and-practice/routes/routes.js b/drill-and-practice/routes/routes.js index 87bddb5..ebc12aa 100644 --- a/drill-and-practice/routes/routes.js +++ b/drill-and-practice/routes/routes.js @@ -2,15 +2,58 @@ import { Router } from "../deps.js"; import * as mainController from "./controllers/mainController.js"; import * as authController from "./controllers/authController.js"; import * as topicController from "./controllers/topicController.js"; +import * as questionController from "./controllers/questionController.js"; +import * as answerController from "./controllers/answerController.js"; +import * as questionApi from "./apis/questionApi.js"; const router = new Router(); +// mainController routes (home page) router.get("/", mainController.showMain); + +// authController routes (login and register) router.get("/auth/login", authController.showLogin); router.get("/auth/register", authController.showRegister); router.post("/auth/login", authController.login); +router.post("/auth/register", authController.register); + +// topicController routes (topics) router.get("/topics", topicController.listTopics); router.post("/topics", topicController.addTopic); router.get("/topics/:tId/delete", topicController.deleteTopic); -router.get("/topics/:tId", qu); + +// questionController routes (questions) +router.get("/topics/:tId", questionController.listQuestions); +router.get("/topics/:tId/questions/:qId", questionController.showQuestion); +router.post("/topics/:tId/questions", questionController.addQuestion); +router.post( + "/topics/:tId/questions/:qId/delete", + questionController.deleteQuestion +); + +// answerController routes (answers) +router.post("/topics/:tId/questions/:qId/options", answerController.addAnswer); +router.post( + "/topics/:tId/questions/:qId/options/:oId/delete", + answerController.deleteAnswer +); + +// questionController routes (quiz) +router.get("/quiz", questionController.listQuizTopics); +router.get("/quiz/:tId", questionController.getRandQuestion); +router.get("/quiz/:tId/questions/:qId", questionController.listQuiz); +router.get("/quiz/:tId/questions/:qId/correct", questionController.showCorrect); +router.get( + "/quiz/:tId/questions/:qId/incorrect", + questionController.showIncorrect +); +router.post( + "/quiz/:tId/questions/:qId/options/:oId", + questionController.storeAnswer +); + +// questionApi routes (API) +router.get("/api/questions/random", questionApi.getRandQuestion); +router.post("api/questions/answer", questionApi.checkRandQuestion); + export { router };