This repository has been archived on 2025-12-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
quizzy-application/drill-and-practice/routes/routes.js
2023-03-12 17:29:07 +02:00

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 };