from flask import Blueprint, request from Modules.Questionnaire.QuestionnaireUtils import QuestionnaireUtils from Modules.Questionnaire.Questionnairelmpl import QuestionnaireImpl from Utils.ErrorUtil import APIReturnError from Utils.RouteUtil import RouteParamsCheck questionnaire_route = Blueprint('questionnaire', __name__) @questionnaire_route.route('/new_questionnaire', methods=['POST']) def new_questionnaire_route(): """新建问卷""" try: RouteParamsCheck(req=request.json, params=[ "questionnaire_name", "questionnaire_score", "section", "author", "tags" ]).required() data = request.json impl = QuestionnaireImpl() result = impl.new_questionnaire(data=data) return {"info": "新建问卷", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @questionnaire_route.route('/check_questionnaire', methods=['POST']) def check_questionnaire_route(): """校验问卷""" try: RouteParamsCheck(req=request.json, params=["questionnaire_score", "section"]).required() data = request.json impl = QuestionnaireImpl() result = impl.check_questionnaire(data=data) return {"info": "校验问卷", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @questionnaire_route.route('/search_questionnaire', methods=['POST']) def search_questionnaire_route(): """查询问卷""" try: RouteParamsCheck(req=request.json, params=["questionnaire_name", "author", "tags", "sort", "page_no", "page_size"]).required() data = request.json impl = QuestionnaireImpl() result = impl.search_questionnaire(data=data) return {"info": "查询问卷", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @questionnaire_route.route('/operate_questionnaire', methods=['GET', 'POST']) def operate_questionnaire_route(): """查看/编辑问卷""" try: if request.method == 'GET': RouteParamsCheck(request.args, ["qid"]).required() qid = request.args["qid"] impl = QuestionnaireImpl() result = impl.view_detail_questionnaire(qid=qid) return {"info": "查看问卷", "result": result}, 200 if request.method == 'POST': RouteParamsCheck(request.json, [ "questionnaire_id", "questionnaire_name", "questionnaire_score", "section", "author", "tags" ]).required() data = request.json impl = QuestionnaireImpl() result = impl.edit_questionnaire(data=data) return {"info": "编辑问卷", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @questionnaire_route.route('/delete_questionnaire', methods=['GET']) def delete_questionnaire_route(): """删除问卷""" try: RouteParamsCheck(request.args, ["qid"]).required() qid = request.args["qid"] impl = QuestionnaireImpl() result = impl.delete_questionnaire(qid=qid) return {"info": "删除问卷", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code