Source code for MambuPy.api.mambuuser

"""MambuUser entity: a MambuEntity struct for Users.

.. autosummary::
   :nosignatures:
   :toctree: _autosummary
"""

from .entities import (
    MambuEntity,
    MambuEntityWritable,
    MambuEntityAttachable,
    MambuEntityCommentable,
    MambuPyError,
)
from .interfaces import MambuOwner


[docs]class MambuUser( MambuEntity, MambuEntityWritable, MambuEntityAttachable, MambuEntityCommentable, MambuOwner, ): """MambuUser entity""" _prefix = "users" """prefix constant for connections to Mambu""" _filter_keys = [ "branchId", ] """allowed filters for get_all filtering""" _sortBy_fields = [] """allowed fields for get_all sorting""" _ownerType = "USER" """owner type of this entity""" _entities = [ ("assignedBranchKey", "mambubranch.MambuBranch", "assignedBranch"), ("role", "mamburole.MambuRole", "role"), ] """3-tuples of elements and Mambu Entities"""
[docs] def __init__(self, **kwargs): super().__init__(**kwargs) self._attachments = {}
[docs] def __repr__(self): """Prints class and name of role""" try: return self.__class__.__name__ + " - username: %s" % self._attrs["username"] except Exception: return super().__repr__()
[docs] def __getattribute__(self, name): """Object-like get attribute for MambuUsers.""" if name == "get_role": return lambda **kwargs: self.getEntities(entities=["role"], **kwargs)[0] else: return super().__getattribute__(name)
[docs] def _updateVOs(self): """Updates role, and the loops _vos list to update corresponding data""" self._attrs["role"] = { "encodedKey": self.role["encodedKey"], "id": self.role["id"], } super()._updateVOs()
[docs] @classmethod def get_all( cls, filters=None, offset=None, limit=None, paginationDetails="OFF", detailsLevel="BASIC", sortBy=None, branchIdType=None, ): """get_all, several entities, filtering allowed Args: filters (dict): key-value filters, dependes on each entity (keys must be one of the _filter_keys) offset (int): pagination, index to start searching limit (int): pagination, number of elements to retrieve paginationDetails (str ON/OFF): ask for details on pagination detailsLevel (str BASIC/FULL): ask for extra details or not sortBy (str): ``field1:ASC,field2:DESC``, sorting criteria for results (fields must be one of the _sortBy_fields) branchIdType (str ASSIGNED/MANAGE): search assigned users or also those who can manage a branch Returns: list of instances of an entity with data from Mambu """ if branchIdType and (not filters or "branchId" not in filters): raise MambuPyError("branchIdType not allowed if branchId not provided") if branchIdType and branchIdType not in ["ASSIGNED", "MANAGE"]: raise MambuPyError("Invalid branchIdType: {}".format(branchIdType)) params = {} if branchIdType: params["branchIdType"] = branchIdType return super().get_all( filters, offset, limit, paginationDetails, detailsLevel, sortBy, **params )