Add endpoint for custom level exams.
This commit is contained in:
49
app.py
49
app.py
@@ -1481,6 +1481,55 @@ def get_level_utas():
|
||||
except Exception as e:
|
||||
return str(e)
|
||||
|
||||
from enum import Enum
|
||||
|
||||
class CustomLevelExerciseTypes(Enum):
|
||||
MULTIPLE_CHOICE_4 = "multiple_choice_4"
|
||||
MULTIPLE_CHOICE_BLANK_SPACE = "multiple_choice_blank_space"
|
||||
MULTIPLE_CHOICE_UNDERLINED = "multiple_choice_underlined"
|
||||
BLANK_SPACE_TEXT = "blank_space_text"
|
||||
READING_PASSAGE_UTAS = "reading_passage_utas"
|
||||
|
||||
@app.route('/custom_level', methods=['GET'])
|
||||
@jwt_required()
|
||||
def get_custom_level():
|
||||
nr_exercises = int(request.args.get('nr_exercises'))
|
||||
|
||||
exercise_id = 1
|
||||
response = {
|
||||
"exercises": {},
|
||||
"module": "level"
|
||||
}
|
||||
for i in range(1, nr_exercises + 1, 1):
|
||||
exercise_type = request.args.get('exercise_' + str(i) + '_type')
|
||||
exercise_qty = int(request.args.get('exercise_' + str(i) + '_qty', -1))
|
||||
exercise_topic = request.args.get('exercise_' + str(i) + '_topic')
|
||||
exercise_text_size = int(request.args.get('exercise_' + str(i) + '_text_size', -1))
|
||||
exercise_sa_qty = int(request.args.get('exercise_' + str(i) + '_sa_qty', -1))
|
||||
exercise_mc_qty = int(request.args.get('exercise_' + str(i) + '_mc_qty', -1))
|
||||
|
||||
if exercise_type == CustomLevelExerciseTypes.MULTIPLE_CHOICE_4.value:
|
||||
response["exercises"]["exercise_" + str(i)] = generate_level_mc(exercise_id, exercise_qty)
|
||||
response["exercises"]["exercise_" + str(i)]["type"] = "multipleChoice"
|
||||
exercise_id = exercise_id + exercise_qty
|
||||
elif exercise_type == CustomLevelExerciseTypes.MULTIPLE_CHOICE_BLANK_SPACE.value:
|
||||
response["exercises"]["exercise_" + str(i)] = gen_multiple_choice_blank_space_utas(exercise_qty, exercise_id)
|
||||
response["exercises"]["exercise_" + str(i)]["type"] = "multipleChoice"
|
||||
exercise_id = exercise_id + exercise_qty
|
||||
elif exercise_type == CustomLevelExerciseTypes.MULTIPLE_CHOICE_UNDERLINED.value:
|
||||
response["exercises"]["exercise_" + str(i)] = gen_multiple_choice_underlined_utas(exercise_qty, exercise_id)
|
||||
response["exercises"]["exercise_" + str(i)]["type"] = "multipleChoice"
|
||||
exercise_id = exercise_id + exercise_qty
|
||||
elif exercise_type == CustomLevelExerciseTypes.BLANK_SPACE_TEXT.value:
|
||||
response["exercises"]["exercise_" + str(i)] = gen_blank_space_text_utas(exercise_qty, exercise_id, exercise_text_size)
|
||||
response["exercises"]["exercise_" + str(i)]["type"] = "blankSpaceText"
|
||||
exercise_id = exercise_id + exercise_qty
|
||||
elif exercise_type == CustomLevelExerciseTypes.READING_PASSAGE_UTAS.value:
|
||||
response["exercises"]["exercise_" + str(i)] = gen_reading_passage_utas(exercise_id, exercise_sa_qty, exercise_mc_qty, exercise_topic)
|
||||
response["exercises"]["exercise_" + str(i)]["type"] = "readingExercises"
|
||||
exercise_id = exercise_id + exercise_qty
|
||||
|
||||
return response
|
||||
|
||||
@app.route('/fetch_tips', methods=['POST'])
|
||||
@jwt_required()
|
||||
|
||||
Reference in New Issue
Block a user