60 lines
2.2 KiB
JavaScript
60 lines
2.2 KiB
JavaScript
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.post("/topics/:tId/delete", topicController.deleteTopic);
|
|
|
|
// 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 };
|