lms.backend.canvas.courses.groups.memberships.list

 1import typing
 2
 3import lms.backend.canvas.common
 4import lms.backend.canvas.model
 5import lms.model.backend
 6import lms.model.groups
 7import lms.model.groupsets
 8import lms.model.users
 9
10BASE_ENDPOINT = "/api/v1/groups/{group_id}/users?per_page={page_size}"
11
12def request(backend: lms.model.backend.APIBackend,
13        course_id: int,
14        groupset_id: int,
15        group_id: int,
16        ) -> typing.List[lms.model.groupsets.GroupSetMembership]:
17    """ List a group memberships. """
18
19    url = backend.server + BASE_ENDPOINT.format(group_id = group_id, page_size = lms.backend.canvas.common.DEFAULT_PAGE_SIZE)
20    headers = backend.get_standard_headers()
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            'groupset_id': groupset_id,
27            'group_id': group_id,
28        }
29        backend.not_found('list group memberships', identifiers)
30
31        return []
32
33    groupset_query = lms.model.groupsets.GroupSetQuery(id = groupset_id)
34    group_query = lms.model.groups.GroupQuery(id = group_id)
35
36    memberships = []
37    for raw_object in raw_objects:
38        user = lms.backend.canvas.model.course_user(backend, raw_object)
39        membership = lms.model.groupsets.GroupSetMembership(user = user.to_query(), groupset = groupset_query, group = group_query)
40        memberships.append(membership)
41
42    return memberships
BASE_ENDPOINT = '/api/v1/groups/{group_id}/users?per_page={page_size}'
def request( backend: lms.model.backend.APIBackend, course_id: int, groupset_id: int, group_id: int) -> List[lms.model.groupsets.GroupSetMembership]:
13def request(backend: lms.model.backend.APIBackend,
14        course_id: int,
15        groupset_id: int,
16        group_id: int,
17        ) -> typing.List[lms.model.groupsets.GroupSetMembership]:
18    """ List a group memberships. """
19
20    url = backend.server + BASE_ENDPOINT.format(group_id = group_id, page_size = lms.backend.canvas.common.DEFAULT_PAGE_SIZE)
21    headers = backend.get_standard_headers()
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            'groupset_id': groupset_id,
28            'group_id': group_id,
29        }
30        backend.not_found('list group memberships', identifiers)
31
32        return []
33
34    groupset_query = lms.model.groupsets.GroupSetQuery(id = groupset_id)
35    group_query = lms.model.groups.GroupQuery(id = group_id)
36
37    memberships = []
38    for raw_object in raw_objects:
39        user = lms.backend.canvas.model.course_user(backend, raw_object)
40        membership = lms.model.groupsets.GroupSetMembership(user = user.to_query(), groupset = groupset_query, group = group_query)
41        memberships.append(membership)
42
43    return memberships

List a group memberships.