80 lines
2.8 KiB
Python
80 lines
2.8 KiB
Python
|
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('/question_id', methods=['GET'])
|
||
|
def question_id_route():
|
||
|
"""新建问题id"""
|
||
|
try:
|
||
|
impl = QuestionUtils()
|
||
|
result = impl.make_new_cid()
|
||
|
return {"info": "新建问题ID", "问题ID": result}, 200
|
||
|
except APIReturnError as e:
|
||
|
return {"info": e.__str__()}, e.status_code
|
||
|
|
||
|
|
||
|
@question_route.route('/new_question', methods=['POST'])
|
||
|
def new_question_route():
|
||
|
"""新建问题"""
|
||
|
try:
|
||
|
RouteParamsCheck(req=request.json, params=[
|
||
|
"question_id", "question_name", "question_type", "describe", "author", "tags"
|
||
|
]).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
|
||
|
|
||
|
|
||
|
@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', 'POST'])
|
||
|
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
|