def create_new_user(self, username, password, query): try: new_user = Users() new_user.user_name = username new_user.hashed_password = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt()) new_user.school_id = query.school_id new_user.first_name = query.first_name new_user.last_name = query.last_name new_user.user_type = query.user_type new_user.email = query.email new_user.profession = query.profession new_user.save() if query.user_type.lower() == "teacher": new_teacher = Teacher() new_teacher.user_id = new_user.user_id new_teacher.has_system_access = True new_teacher.save() response.body = json.dumps({ 'success': 'Successfully created teacher ' + new_user.user_name + ' with id ' + str(new_user.user_id), 'id': new_user.user_id }) response.status = 200 elif query.user_type.lower() == "student": new_student = Student() new_student.user_id = new_user.user_id new_student.has_system_access = False new_student.save() response.body = json.dumps({ 'success': 'Successfully created student ' + new_user.user_name + ' with id ' + str(new_user.user_id), 'id': new_user.user_id }) response.status = 200 else: response.body = json.dumps({'error': 'Unknown user type'}) response.status = 500 except Exception as e: response.body = json.dumps({'error': str(e)}) response.status = 500 return response