lms.backend.canvas.courses.groups.memberships.subtract

 1import typing
 2
 3import lms.backend.canvas.common
 4import lms.model.constants
 5
 6BASE_ENDPOINT = "/api/v1/groups/{group_id}/users"
 7
 8def request(backend: typing.Any,
 9        course_id: int,
10        groupset_id: int,
11        group_id: int,
12        user_ids: typing.List[int],
13        ) -> int:
14    """ Subtract users from a group. """
15
16    url = backend.server + BASE_ENDPOINT.format(group_id = group_id)
17    headers = backend.get_standard_headers()
18
19    headers[lms.model.constants.HEADER_KEY_WRITE] = 'true'
20
21    data = {
22        'user_ids[]': sorted(user_ids),
23    }
24
25    raw_object = lms.backend.canvas.common.make_delete_request(url, headers = headers, data = data)
26    if (raw_object is None):
27        identifiers = {
28            'course_id': course_id,
29            'groupset_id': groupset_id,
30            'group_id': group_id,
31            'user_ids': user_ids,
32        }
33        backend.not_found('subtract group memberships', identifiers)
34
35        return 0
36
37    return len(raw_object['deleted_user_ids'])
BASE_ENDPOINT = '/api/v1/groups/{group_id}/users'
def request( backend: Any, course_id: int, groupset_id: int, group_id: int, user_ids: List[int]) -> int:
 9def request(backend: typing.Any,
10        course_id: int,
11        groupset_id: int,
12        group_id: int,
13        user_ids: typing.List[int],
14        ) -> int:
15    """ Subtract users from a group. """
16
17    url = backend.server + BASE_ENDPOINT.format(group_id = group_id)
18    headers = backend.get_standard_headers()
19
20    headers[lms.model.constants.HEADER_KEY_WRITE] = 'true'
21
22    data = {
23        'user_ids[]': sorted(user_ids),
24    }
25
26    raw_object = lms.backend.canvas.common.make_delete_request(url, headers = headers, data = data)
27    if (raw_object is None):
28        identifiers = {
29            'course_id': course_id,
30            'groupset_id': groupset_id,
31            'group_id': group_id,
32            'user_ids': user_ids,
33        }
34        backend.not_found('subtract group memberships', identifiers)
35
36        return 0
37
38    return len(raw_object['deleted_user_ids'])

Subtract users from a group.