def post(self): # parse the arguments args = api.payload args['gender'] = app.config['GENDER'](args['gender']) mobile_number = args['mobile_number'] enrollment_key = args['enrollment_key'] # check the validity of enrollment key result, enrollment = check_enrollment_key(enrollment_key) # student record shall be updated only when the key is not used and valid if result['valid'] and result['reason'] == 'NOT_USED': # updating student data student_id = enrollment.student_id student = Student.query.filter_by(id=student_id).first() student.update_data(args, [mobile_number]) student.change_stage('PDS') return {'success': True, 'enrollment_key_status': result['reason']} # when the key is used but somehow student went to the this route instead of test elif result['valid'] and result['reason'] == 'ALREADY_IN_USED': return {'success': True, 'enrollment_key_status': result['reason']} # when the key is not valid return { 'success': False, 'enrollment_key_status': result['reason'], }
def post(self): args = api.payload # check the enrollment key enrollment_key = args.get('enrollment_key') result, enrollment = check_enrollment_key(enrollment_key) # if enrollment doesn't exist or expired if not result['valid']: return {'error': True, 'enrollment_key_valid': False} # Check if only valid question IDs are there questions_attempt = args.get('questions_attempt') wrong_question_ids = check_question_ids(enrollment, questions_attempt) if wrong_question_ids: return { 'error': True, 'enrollment_key_valid': True, 'invalid_question_ids': wrong_question_ids } # Create attempts in the DB QuestionAttempts.create_attempts(questions_attempt, enrollment) enrollment.end_test() enrollment.calculate_test_score() return {'success': True, 'enrollment_key_valid': True}
def post(self): args = self.post_parser.parse_args() args['gender'] = app.config['GENDER'](args['gender']) # Enrollment Key mobile_number = args['mobile_number'] enrollment_key = args['enrollment_key'] # check the validity of enrollment key result, enrollment = check_enrollment_key(enrollment_key) # student record shall be updated only when the key is not used if result['valid'] and result['reason'] == 'NOT_USED': # updating student data student_id = enrollment.student_id student = Student.query.filter_by(id=student_id).first() student.update_data(args) # creating student contact record student_contact = StudentContact.create(contact=mobile_number, student_id=student_id) return {'success': True, 'enrollment_key_status': result['reason']} # when the key is used but somehow student went to the this route instead of test elif result['valid'] and result['reason'] == 'ALREADY_IN_USED': return {'success': True, 'enrollment_key_status': result['reason']} # when the key is not valid return { 'success': False, 'enrollment_key_status': result['reason'], }
def post(self): args = api.payload # check the enrollment key enrollment_key = args.get('enrollment_key') result, enrollment = check_enrollment_key(enrollment_key) # if enrollment doesn't exist or expired if not result['valid']: return {'error': True, 'enrollment_key_valid': False} #add questions to db questions_attempted = args.get('question_attempted') # is_question_ids_correct = check_question_ids(questions_attempted) wrong_question_ids = check_question_ids(questions_attempted, enrollment) if wrong_question_ids: return { 'error': True, 'enrollment_key_valid': True, 'invalid_question_ids': wrong_question_ids } QuestionAttempts.create_attempts(questions_attempted, enrollment) enrollment.end_test() return {'success': True}
def post(self): args = api.payload enrollment_key = args.get('enrollment_key') result, enrollment = check_enrollment_key(enrollment_key) # if the enrollment_key does't exist if result['reason'] == 'DOES_NOT_EXIST': return {'error': True, 'message': "KEY_DOESN'T_EXIST"} # update the data of the student student = enrollment.student student.update_data(args) student.change_stage('ETA') return {'success': True}
def post(self): args = api.payload enrollment_key = args.get('enrollment_key') result, enrollment = check_enrollment_key(enrollment_key) # if the enrollment_key does't exist if not result['valid'] and result['reason'] == 'DOES_NOT_EXIST': return {'error': True, 'message': "KEY_DOESN'T_EXIST"} # if the key is expired it means has given examination and can fill the more details if not result['valid'] and result['reason'] == 'EXPIRED': student_id = enrollment.student_id student = Student.query.get(student_id) student.update_data(args) return {'success': True, 'message': "UPDATED_DATA"} # when the key is not used to give any test return {'error': True, 'message': "KEY_IS_NOT_USED"}
def get(self): args = self.get_parser.parse_args() # check the enrollment key enrollment_key = args.get('enrollment_key') result, enrollment = check_enrollment_key(enrollment_key) # if enrollment doesn't exist or expired if not result['valid']: return {'error': True, 'enrollment_key_validation': False} elif result['valid'] and result['reason'] == 'ALREADY_IN_USED': questions = enrollment.extract_question_from_set() else: # start the test and send the questions generated randomly enrollment.start_test() question_set, questions = QuestionSet.create_new_set() enrollment.question_set_id = question_set.id db.session.add(enrollment) db.session.commit() return {'questions': questions}
def get(self): args = self.get_parser.parse_args() # check the enrollment key enrollment_key = args.get('enrollment_key') result, enrollment = check_enrollment_key(enrollment_key) # if enrollment doesn't exist or expired if not result['valid']: return {'error': True, 'enrollment_key_validation': False} # if `ALREADY_IN_USED` means a question set associated with the ID has # already been generated. Then just get that set and return it. elif result['valid'] and result['reason'] == 'ALREADY_IN_USED': question_set = enrollment.question_set questions = question_set.get_questions() # otherwise if the enrolment key has never been used then a new question # set needs to be created and served. else: # start the test and send the questions generated randomly question_set, questions = enrollment.get_question_set() return {'data': questions, 'enrollment_key_validation': True}
def get(self): args = self.get_parser.parse_args() enrollment_key = args.get('enrollment_key', None) result, enrollment = check_enrollment_key(enrollment_key) return result