lms.backend.canvas.courses.users.list

 1import typing
 2
 3import lms.backend.canvas.common
 4import lms.backend.canvas.model
 5import lms.model.backend
 6import lms.model.users
 7
 8BASE_ENDPOINT = "/api/v1/courses/{course_id}/users?per_page={page_size}"
 9
10def request(backend: lms.model.backend.APIBackend,
11        course_id: int,
12        include_role: bool = True,
13        ) -> typing.List[lms.model.users.CourseUser]:
14    """ List course users. """
15
16    url = backend.server + BASE_ENDPOINT.format(course_id = course_id, page_size = lms.backend.canvas.common.DEFAULT_PAGE_SIZE)
17    headers = backend.get_standard_headers()
18
19    if (include_role):
20        url += '&include[]=enrollments'
21
22    raw_objects = lms.backend.canvas.common.make_get_request_list(url, headers = headers)
23    if (raw_objects is None):
24        identifiers = {
25            'course_id': course_id,
26        }
27        backend.not_found('list users', identifiers)
28
29        return []
30
31    return [lms.backend.canvas.model.course_user(backend, raw_object) for raw_object in raw_objects]
BASE_ENDPOINT = '/api/v1/courses/{course_id}/users?per_page={page_size}'
def request( backend: lms.model.backend.APIBackend, course_id: int, include_role: bool = True) -> List[lms.model.users.CourseUser]:
11def request(backend: lms.model.backend.APIBackend,
12        course_id: int,
13        include_role: bool = True,
14        ) -> typing.List[lms.model.users.CourseUser]:
15    """ List course users. """
16
17    url = backend.server + BASE_ENDPOINT.format(course_id = course_id, page_size = lms.backend.canvas.common.DEFAULT_PAGE_SIZE)
18    headers = backend.get_standard_headers()
19
20    if (include_role):
21        url += '&include[]=enrollments'
22
23    raw_objects = lms.backend.canvas.common.make_get_request_list(url, headers = headers)
24    if (raw_objects is None):
25        identifiers = {
26            'course_id': course_id,
27        }
28        backend.not_found('list users', identifiers)
29
30        return []
31
32    return [lms.backend.canvas.model.course_user(backend, raw_object) for raw_object in raw_objects]

List course users.