def create_user_token(user_id, **kwargs): user_token_id = db.insert("INSERT INTO user_tokens (user_id, token) VALUES(%s, UUID())", [user_id]) for field_name in kwargs: db.update("UPDATE user_tokens SET " + field_name + " = %s WHERE id = %s", [kwargs[field_name], user_token_id]) return db.fetchrow("SELECT * FROM user_tokens WHERE id = %s", [user_token_id])
def execute_code_by_short_code(classroom_id, short_code): classroom_user_code = db.fetchrow("SELECT code FROM classroom_user_code WHERE classroom_id = %s AND short_code = %s", [classroom_id, short_code]) if not classroom_user_code: return "No code exists for the current user!" # return (classroom_user_code['code'], 200, {"Content-type":"text/plain"}, ) return (send_code_execution_request(classroom_user_code['code']), 200, {"Content-type":"text/plain"}, )
def classroom_teacher(classroom_id): if not 'user_id' in session: session['user_id'] = db.insert("INSERT INTO users VALUES()", []) result = db.fetchrow("SELECT COUNT(*) AS total_entries FROM classroom_user_roles WHERE user_id = %s AND role = %s", [session['user_id'], ClassroomRoles.TEACHER]) if result['total_entries'] <= 0: return redirect(url_for('.classroom_student', classroom_id=classroom_id)) classroom = db.fetchrow("SELECT * FROM classrooms WHERE id = %s", [classroom_id]) if not classroom: return redirect(url_for('.index')) public_link = "%s%s" % (request.host_url[:-1], url_for('.classroom_student_join_code', join_code=classroom['join_code']), ) return render_template('classroom/teacher.html', user_token=security.create_user_token(session['user_id'], classroom_id=classroom_id), classroom=classroom, public_link=public_link)
def execute_code_by_session(classroom_id): if not 'user_id' in session: session['user_id'] = db.insert("INSERT INTO users VALUES()", []) classroom_user_code = db.fetchrow("SELECT code FROM classroom_user_code WHERE classroom_id = %s AND user_id = %s", [classroom_id, session['user_id']]) if not classroom_user_code: return "No code exists for the current user!" return send_code_execution_request(classroom_user_code['code'])
def classroom_student_join_code(join_code): if not 'user_id' in session: session['user_id'] = db.insert("INSERT INTO users VALUES()", []) classroom = db.fetchrow("SELECT * FROM classrooms WHERE join_code = %s", [join_code]) if not classroom: return redirect(url_for('.index')) classroom_user_code = db.get_classroom_user_code(classroom['id'], session['user_id']) return render_template('classroom/student.html', user_token = security.create_user_token(session['user_id'], classroom_id=classroom['id']), classroom = classroom, classroom_user_code = classroom_user_code, execution_link = "%s%s" % (request.host_url[:-1], url_for('.execute_code_by_short_code', classroom_id=classroom['id'], short_code=classroom_user_code['short_code']), ) )