def _courses(): params_required = ['moodleid'] params_requested = dict(request.args) is_validated, response_with_error = util.validate_params(params_requested, params_required) if not is_validated: return response_with_error moodle_id = request.args.get('moodleid') moodle_api_service = moodle_api.COURSE_GET_COURSES url = util.get_moodle_url(moodle_id, moodle_api_service) if url is None: return Response("{'error':'moodle with given id not found'}", status=404, mimetype='application/json') resp = requests.get(url) course_list = [] for course in resp.json(): course_dict = { 'id' : course['id'], 'shortname' : course['shortname'], 'fullname' : course['fullname'], 'displayname' : course['displayname'] } course_list.append(course_dict) return json.dumps(course_list), 200, {'ContentType': 'application/json'}
def _course_check_updates(): params_required = ['moodleid', 'courseid', 'moduleid', 'since'] params_requested = dict(request.args) is_validated, response_with_error = util.validate_params(params_requested, params_required) if not is_validated: return response_with_error moodle_id = request.args.get('moodleid') args_for_api_service = '' course_id = request.args.get('courseid') args_for_api_service += '&courseid=' + course_id module_id = request.args.get('moduleid') args_for_api_service += '&tocheck[0][id]=' + module_id since = request.args.get('since') args_for_api_service += '&tocheck[0][since]=' + since args_for_api_service += '&tocheck[0][contextlevel]=module' moodle_api_service = moodle_api.COURSE_CHECK_UPDATES url = util.get_moodle_url(moodle_id, moodle_api_service, args_for_api_service) if url is None: return Response("{'error':'moodle with given id not found'}", status=404, mimetype='application/json') result = requests.get(url).json() if type(result) is dict and result.get('exception') is not None: return Response("{'error':" + result.get('message') + "}", status=404, mimetype='application/json') return json.dumps(result), 200, {'ContentType': 'application/json'}
def _events(): params_required = ['moodleid'] params_requested = dict(request.args) is_validated, response_with_error = util.validate_params(params_requested, params_required) if not is_validated: return response_with_error moodle_id = request.args.get('moodleid') args_for_api_service = '' moodle_api_service = moodle_api.CALENDAR_GET_CALENDAR_EVENTS url = util.get_moodle_url(moodle_id, moodle_api_service, args_for_api_service) if url is None: return Response("{'error':'moodle with given id not found'}", status=404, mimetype='application/json') result = requests.get(url).json() return json.dumps(result) , 200, {'ContentType': 'application/json'}
def _course_contents(): params_required = ['moodleid', 'courseid'] params_requested = dict(request.args) is_validated, response_with_error = util.validate_params(params_requested, params_required) if not is_validated: return response_with_error moodle_id = request.args.get('moodleid') course_id = request.args.get('courseid') args_for_api_service = '&courseid=' + course_id moodle_api_service = moodle_api.COURSE_GET_CONTENTS url = util.get_moodle_url(moodle_id, moodle_api_service, args_for_api_service) if url is None: return Response("{'error':'moodle with given id not found'}", status=404, mimetype='application/json') result = requests.get(url).json() if type(result) is dict and result.get('exception') is not None: return Response("{'error':" + result.get('message') + "}", status=404, mimetype='application/json') return json.dumps(result), 200, {'ContentType': 'application/json'}
def _file(): params_required = ['moodleid', 'courseid', 'sectionid', 'filename'] params_requested = dict(request.args) is_validated, response_with_error = util.validate_params(params_requested, params_required) if not is_validated: return response_with_error moodle_id = request.args.get('moodleid') course_id = request.args.get('courseid') args_for_api_service = '&courseid=' + course_id moodle_api_service = moodle_api.COURSE_GET_CONTENTS url = util.get_moodle_url(moodle_id, moodle_api_service, args_for_api_service) if url is None: return Response("{'error':'moodle with given id not found'}", status=404, mimetype='application/json') result = json.loads(requests.get(url).text) moodle = util.get_moodle_by_id(moodle_id) section_id = request.args.get('sectionid') module_id = request.args.get('moduleid') file_name = request.args.get('filename') for section in result: if section['id'] == int(section_id): for module in section['modules']: if module['id'] == int(module_id): for content in module['contents']: if content['filename'] == file_name: file_url = content['fileurl'] if content['type'] != 'url': file_url += '&token=' + moodle.get('token') response = requests.get(file_url) return Response(response, status=200, content_type=response.headers._store['content-type'][1]) print('file not found') return Response("{'error':'file not found'}", status=404, mimetype='application/json')