def remove_teacher_group(course_id: str, teacher: str, group_id: str): resp = requests.delete(conf.EMS_BASE_URL + '/courses/' + course_id + '/groups/' + group_id + '/teachers/' + teacher, headers=util.get_token_header()) print(resp.status_code)
def sync_grades(course_id: str): resp = requests.post(conf.EMS_BASE_URL + '/courses/' + course_id + '/moodle/grades', headers=util.get_token_header()) print(resp.status_code) print(resp.json())
def reorder_exercises(course_id: str, course_exercise_id: str, new_index: int): body = {"new_index": new_index} resp = requests.post(conf.EMS_BASE_URL + '/courses/' + course_id + '/exercises/' + course_exercise_id + '/reorder', json=body, headers=util.get_token_header()) print(resp.status_code)
def new_course(title: str): body = {'title': title} resp = requests.post(conf.EMS_BASE_URL + '/admin/courses', json=body, headers=util.get_token_header()) print(resp.status_code) j = resp.json() return j['id']
def create_group(course_id: str, name: str): body = {'name': name} resp = requests.post(conf.EMS_BASE_URL + '/courses/' + course_id + '/groups', json=body, headers=util.get_token_header()) print(resp.status_code) j = resp.json() return j['id']
def autoass(course_id: str, exercise_id: str, solution_file: str): solution = util.get_file_content(solution_file) body = { 'solution': solution } resp = requests.post( conf.EMS_BASE_URL + '/teacher/courses/' + course_id + '/exercises/' + exercise_id + '/autoassess', json=body, headers=util.get_token_header()) print(resp.status_code) print(resp.json())
def add_teacher(course_id: str, teachers: list): teachers_list = list(map(lambda e: {'email': e}, teachers)) body = {'teachers': teachers_list} resp = requests.post(conf.EMS_BASE_URL + '/courses/' + course_id + '/teachers', json=body, headers=util.get_token_header()) print(resp.status_code)
def remove_teacher_course(course_id: str, teachers: list): teachers_list = list(map(lambda e: {'username': e}, teachers)) body = {'teachers': teachers_list} resp = requests.delete(conf.EMS_BASE_URL + '/courses/' + course_id + '/teachers', json=body, headers=util.get_token_header()) print(resp.status_code)
def add_students(course_id: str, students: list, group_id: str): students_list = list( map(lambda e: { 'email': e, 'groups': [{ 'id': group_id }] }, students)) body = {'students': students_list} resp = requests.post(conf.EMS_BASE_URL + '/courses/' + course_id + '/students', json=body, headers=util.get_token_header()) print(resp.status_code)
def link_moodle_course(course_id: str, moodle_short_name: str, sync_students: bool, sync_grades: bool, force: bool): body = { "moodle_props": { "moodle_short_name": moodle_short_name, "sync_students": sync_students, "sync_grades": sync_grades }, "force": force } resp = requests.put(conf.EMS_BASE_URL + '/courses/' + course_id + '/moodle', json=body, headers=util.get_token_header()) print(resp.status_code) print(resp.json())
def new_course_exercise(course_id, exercise_id, threshold, soft_deadline, hard_deadline, visible, ass_visible, instructions, title_alias): body = { 'exercise_id': exercise_id, 'threshold': threshold, 'soft_deadline': soft_deadline, 'hard_deadline': hard_deadline, 'student_visible': visible, 'assessments_student_visible': ass_visible, 'instructions_html': instructions, 'title_alias': title_alias } resp = requests.post(conf.EMS_BASE_URL + '/teacher/courses/' + course_id + '/exercises', json=body, headers=util.get_token_header()) print(resp.status_code)
def delete_group(course_id: str, group_id: str): resp = requests.delete(conf.EMS_BASE_URL + '/courses/' + course_id + '/groups/' + group_id, headers=util.get_token_header()) print(resp.status_code)
def update_exercise(exercise_id: str, title: str, html_file: str, adoc_file: str, public: bool, grader: str, grading_file: str, container_image: str, max_time_sec: int, max_mem_mb: int, asset_files: list, executors: list): html = util.get_optional_file_content(html_file) adoc = util.get_optional_file_content(adoc_file) body = { 'title': title, 'text_html': html, 'text_adoc': adoc, 'public': public, 'grader_type': grader.upper(), 'container_image': container_image, 'max_time_sec': max_time_sec, 'max_mem_mb': max_mem_mb, } if grading_file is not None: grading_script = util.get_file_content(grading_file) body["grading_script"] = grading_script if len(asset_files) > 0: assets = list(map(lambda filename: {'file_name': os.path.basename(filename), 'file_content': util.get_file_content(filename)}, asset_files) ) body["assets"] = assets if len(executors) > 0: executors = list(map(lambda e: {'executor_id': e}, executors)) body["executors"] = executors resp = requests.put(conf.EMS_BASE_URL + '/exercises/' + exercise_id, json=body, headers=util.get_token_header()) print(resp.status_code)