api-datamanager/Modules/Questions/QuestionsRoutes.py

82 lines
3.0 KiB
Python
Raw Normal View History

2022-07-12 10:28:05 +08:00
from flask import Blueprint, request
from Modules.Questions.QuestionsImpl import QuestionImpl
from Modules.Questions.QuestionsUtils import QuestionUtils
from Utils.ErrorUtil import APIReturnError
from Utils.RouteUtil import RouteParamsCheck
question_route = Blueprint('question', __name__)
@question_route.route('/new_question', methods=['POST'])
def new_question_route():
"""新建问题"""
try:
RouteParamsCheck(req=request.json, params=[
2022-07-18 19:59:11 +08:00
"question_name", "question_type", "describe", "author", "tags"
2022-07-12 10:28:05 +08:00
]).required()
data = request.json
impl = QuestionImpl()
result = impl.new_question(data=data)
return {"info": "新建问题", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
2022-07-18 19:59:11 +08:00
@question_route.route('/check_question', methods=['POST'])
def check_question_route():
"""校验问题"""
try:
2022-07-19 15:12:44 +08:00
RouteParamsCheck(req=request.json, params=["question_name", "question_type", "question_answer"]).required()
2022-07-18 19:59:11 +08:00
data = request.json
impl = QuestionImpl()
result = impl.check_question(data=data)
return {"info": "校验问题", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
2022-07-12 10:28:05 +08:00
@question_route.route('/search_question', methods=['POST'])
def search_question_route():
"""查询问题"""
try:
RouteParamsCheck(req=request.json, params=["sort", "page_no", "page_size"]).required()
data = request.json
impl = QuestionImpl()
result = impl.search_question(data=data)
return {"info": "查询问题", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@question_route.route('/operate_question', methods=['GET', 'POST'])
def operate_question_route():
"""查看/编辑问题"""
try:
if request.method == 'GET':
RouteParamsCheck(request.args, ["qid"]).required()
qid = request.args["qid"]
impl = QuestionImpl()
result = impl.view_question(qid=qid)
return {"info": "查看问题", "result": result}, 200
if request.method == 'POST':
RouteParamsCheck(request.json, ["question_id", "question_name", "describe", "tags"]).required()
data = request.json
impl = QuestionImpl()
result = impl.edit_question(data=data)
return {"info": "编辑问题", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@question_route.route('/delete_question', methods=['GET'])
2022-07-12 10:28:05 +08:00
def delete_question_route():
"""删除问题"""
try:
RouteParamsCheck(request.args, ["qid"]).required()
qid = request.args["qid"]
impl = QuestionImpl()
result = impl.delete_question(qid=qid)
return {"info": "删除问题", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code