def dispatch(self, request, *args, **kwargs): self.course_api_enabled = switch_is_active('enable_course_api') if self.course_api_enabled and request.user.is_authenticated(): self.access_token = settings.COURSE_API_KEY or request.user.access_token self.course_api = CourseStructureApiClient(settings.COURSE_API_URL, self.access_token).courses return super(CourseAPIMixin, self).dispatch(request, *args, **kwargs)
def __init__(self, course_id, http_cookies=None): self.course_id = course_id self.analytics_api_client = Client(base_url=API_SERVER_URL, auth_token=API_AUTH_TOKEN, timeout=1000) self.course_api_client = CourseStructureApiClient( COURSE_API_URL, COURSE_API_KEY, 5) self.http_client = requests.Session() self.http_client.cookies = http_cookies
def get_courses(): filename = 'courses.json' try: with io.open(filename, 'r', encoding='utf-8') as f: courses = json.load(f) except Exception as e: # pylint: disable=broad-except logger.warning('Failed to read courses from file: %s', e) courses = [] if not courses: logger.info('Retrieving courses from API...') client = CourseStructureApiClient(COURSE_API_URL, COURSE_API_KEY, 5) courses = client.all_courses courses = [course['id'] for course in courses] courses.sort(key=lambda course: course.lower()) with io.open(filename, 'w', encoding='utf-8') as f: f.write(six.text_type(json.dumps(courses, ensure_ascii=False))) logger.info('Retrieved %s courses.', len(courses)) return courses
def setUp(self): super().setUp() if ENABLE_COURSE_API: self.course_api_client = CourseStructureApiClient( COURSE_API_URL, COURSE_API_KEY, 5)
def __init__(self, access_token, course_id, timeout=10): super(CoursePerformancePresenter, self).__init__(course_id, timeout) self.course_api_client = CourseStructureApiClient( settings.COURSE_API_URL, access_token)