예제 #1
0
    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
예제 #3
0
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
예제 #4
0
    def setUp(self):
        super().setUp()

        if ENABLE_COURSE_API:
            self.course_api_client = CourseStructureApiClient(
                COURSE_API_URL, COURSE_API_KEY, 5)
예제 #5
0
 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)