from flask import Blueprint, request from di_container import Container from dependency_injector.wiring import inject, Provide from controllers import QuizController quiz_bp = Blueprint("quiz", __name__) @quiz_bp.route("", methods=["POST"]) @inject def create_quiz(controller: QuizController = Provide[Container.quiz_controller]): reqBody = request.get_json() return controller.create_quiz(reqBody) @quiz_bp.route("/", methods=["GET"]) @inject def get_quiz( quiz_id: str, controller: QuizController = Provide[Container.quiz_controller] ): return controller.get_quiz(quiz_id) @quiz_bp.route("/answer", methods=["POST"]) @inject def submit_answer(controller: QuizController = Provide[Container.quiz_controller]): req_body = request.get_json() return controller.submit_answer(req_body) @quiz_bp.route("/answer", methods=["GET"]) @inject def get_answer(controller: QuizController = Provide[Container.quiz_controller]): quiz_id = request.args.get("quiz_id") user_id = request.args.get("user_id") session_id = request.args.get("session_id") return controller.get_answer( quiz_id=quiz_id, user_id=user_id, session_id=session_id ) @quiz_bp.route("/recomendation", methods=["GET"]) @inject def get_quiz_recommendation( controller: QuizController = Provide[Container.quiz_controller], ): return controller.get_quiz_recommendation()