Source code for highspot.groups

# -*- coding: utf-8 -*-
"""
:Module:            highspot.groups
:Synopsis:          Defines the group-related functions associated with the Highspot API
:Created By:        Jeff Shurtliff
:Last Modified:     Jeff Shurtliff
:Modified Date:     16 Oct 2022
"""

from . import api
from .errors import exceptions


[docs]def get_groups(hs_object, role_filter=None, right_filter=None, start=None, limit=None): """This function retrieves the list of groups. :param hs_object: The core :py:class:`highspot.Highspot` object :type hs_object: class[highspot.Highspot] :param role_filter: Role by which to filter groups (``editor``, ``viewer``, ``manager``, or ``owner``) :type role_filter: str, None :param right_filter: Right by which to filter groups (``edit``, ``view``, or ``manage``) :type right_filter: str, None :param start: The start position of the paged request :type start: str, int, None :param limit: The maximum number of groups returned :type limit: str, int, None :returns: The group list data in JSON format :raises: :py:exc:`highspot.errors.exceptions.APIConnectionError`, :py:exc:`highspot.errors.exceptions.InvalidFieldError` """ endpoint = '/groups?' if any((role_filter, right_filter, start, limit)) else '/groups' if role_filter: valid_role_filters = ['editor', 'viewer', 'manager', 'owner'] if role_filter not in valid_role_filters: raise exceptions.InvalidFieldError('The role filter value must be a valid role.') endpoint += f'role={role_filter}' if right_filter: valid_right_filters = ['edit', 'view', 'manage'] if right_filter not in valid_right_filters: raise exceptions.InvalidFieldError('The right filter value must be a valid right.') endpoint += f'&right={right_filter}' if '=' in endpoint else f'right={right_filter}' if start: endpoint += f'&start={start}' if '=' in endpoint else f'start={start}' if limit: endpoint += f'&limit={limit}' if '=' in endpoint else f'limit={limit}' return api.get_request_with_retries(hs_object, endpoint)
[docs]def get_group(hs_object, group_id): """This function returns the metadata for a specific group. :param hs_object: The core :py:class:`highspot.Highspot` object :type hs_object: class[highspot.Highspot] :param group_id: The unique identifier for the group :type group_id: str :returns: The group metadata in JSON format :raises: :py:exc:`highspot.errors.exceptions.APIConnectionError` """ endpoint = f'/groups/{group_id}' return api.get_request_with_retries(hs_object, endpoint)