Source code for pybricks.groups

import json
import os

import requests


[docs]class GroupsApi(object): """The Groups API""" def __init__(self, hostname, token): self.hostname = "%s/api/" % hostname self.__headers = {'authorization': "Bearer %s" % token, "content-type": "application/scim+json", "accept": "application/scim+json"}
[docs] def list(self): """Returns all of the groups in an organization.""" endpoint = "2.0/groups/list" url = "%s%s" % (self.hostname, endpoint) req = requests.get(url, headers=self.__headers) objects = req.json()['group_names'] return objects
[docs] def get_members(self, group_name): """Returns all of the members of a particular group.""" endpoint = "2.0/groups/list-members" params = {'group_name': group_name} url = "%s%s" % (self.hostname, endpoint) req = requests.get(url, headers=self.__headers, params=params) objects = req.json()['members'] return objects
[docs] def exists(self, group_name): """Returns true if the group exists. False otherwise""" return group_name in self.list()
[docs] def create(self, group_name): """Creates a new group with the given name.""" endpoint = "2.0/groups/create" data = json.dumps({'group_name': group_name}) url = "%s%s" % (self.hostname, endpoint) req = requests.post(url, headers=self.__headers, data=data) objects = req.json() return objects
[docs] def delete(self, group_name): """Removes a group from this organization.""" endpoint = "2.0/groups/delete" data = json.dumps({'group_name': group_name}) url = "%s%s" % (self.hostname, endpoint) req = requests.post(url, headers=self.__headers, data=data) objects = req.json() return objects
[docs] def add_member(self, user_or_group, group_name): """Adds a user or group to a group.""" endpoint = "2.0/groups/add-member" member_type = None if self.user_exists(user_or_group): member_type = 'user_name' elif self.exists(user_or_group): member_type = 'group_name' if member_type: data = json.dumps({member_type: user_or_group, 'parent_name': group_name}) url = "%s%s" % (self.hostname, endpoint) req = requests.post(url, headers=self.__headers, data=data) objects = req.json() return objects
[docs] def remove_member(self, user_or_group, group_name): """Removes a user or group from a group.""" endpoint = "2.0/groups/remove-member" member_type = None if self.user_exists(user_or_group): member_type = 'user_name' elif self.exists(user_or_group): member_type = 'group_name' if member_type: data = json.dumps({member_type: user_or_group, 'parent_name': group_name}) url = "%s%s" % (self.hostname, endpoint) req = requests.post(url, headers=self.__headers, data=data) objects = req.json() return objects