Source code for pyatlassian.atlassian_confluence.label

# -*- coding: utf-8 -*-

"""
"""

import typing as T
import dataclasses

from ..pagi import _paginate
from ..atlassian.api import (
    NA,
    rm_na,
    T_RESPONSE,
    T_KWARGS,
)

if T.TYPE_CHECKING:  # pragma: no cover
    from .model import Confluence


[docs] @dataclasses.dataclass class LabelMixin: """ For detailed API documentation, see: https://developer.atlassian.com/cloud/confluence/rest/v2/api-group-label/#api-group-label """
[docs] def get_labels( self: "Confluence", label_id: T.List[int] = NA, prefix: T.List[str] = NA, sort: str = NA, cursor: str = NA, limit: int = NA, req_kwargs: T.Optional[T_KWARGS] = None, _url: str = None, ) -> T_RESPONSE: """ For detailed parameter descriptions, see: https://developer.atlassian.com/cloud/confluence/rest/v2/api-group-label/#api-labels-get :param req_kwargs: additional ``requests.request()`` kwargs """ if _url is None: url = f"{self._root_url}/labels" else: url = _url params = { "label-id": label_id, "prefix": prefix, "sort": sort, "cursor": cursor, "limit": limit, } params = rm_na(**params) params = params if len(params) else None return self.make_request( method="GET", url=url, params=params, req_kwargs=req_kwargs, )
[docs] def pagi_get_labels( self: "Confluence", label_id: T.List[int] = NA, prefix: T.List[str] = NA, sort: str = NA, cursor: str = NA, limit: int = NA, req_kwargs: T.Optional[T_KWARGS] = None, total_max_results: int = 9999, ) -> T.Iterable[T_RESPONSE]: """ For detailed parameter descriptions, see: https://developer.atlassian.com/cloud/confluence/rest/v2/api-group-label/#api-labels-get :param req_kwargs: additional ``requests.request()`` kwargs :param total_max_results: total max results to fetch in all response """ def get_next_token(res): return res.get("_links", {}).get("next") def set_next_token(kwargs, next_token): kwargs["_url"] = f"{self.url}{next_token}" yield from _paginate( method=self.get_labels, list_key="results", get_next_token=get_next_token, set_next_token=set_next_token, kwargs=dict( label_id=label_id, prefix=prefix, sort=sort, cursor=cursor, limit=limit, req_kwargs=req_kwargs, ), max_results=total_max_results, )