Source code for sisense.analysis.folder

from sisense.resource import Resource


[docs]class Folder(Resource):
[docs] def get(self, oid: str) -> Resource: """ Get a specific folder. :param oid: (str) Folder's ID. :return: (Folder) """ content = self._api.get(f'folders/{oid}') return Folder(self._api, content)
[docs] def all(self) -> list: """ Get all folders. :return: (list) List of folder objects. """ content = self._api.get('folders') results = [Folder(self._api, rjson) for rjson in content] return results
[docs] def create(self, name: str, parent: str = None) -> Resource: """ Create a new folder. :param name: (str) Folder's name. :param parent: (str, default None) Parent folder's ID. :return: (Folder) The new folder. """ data = {'name': name} if parent: data['parentId'] = parent content = self._api.post('folders', data=data) return Folder(self._api, content)
[docs] def update(self, **kwargs): """ Update the current folder. :param name: (str, named parameter) The new folder name. :param parentId: (str, named parameter) The new parent folder ID. :param owner: (str, named parameter) The new owner of the folder, a user ID. """ data = { 'name': kwargs.get('name', self.name), 'parentId': kwargs.get('parentId', self.parentId), 'owner': kwargs.get('owner', self.owner) } self._api.patch(f'folders/{self.oid}', data=data)
[docs] def delete(self): """Delete the current folder.""" self._api.delete(f'folders/{self.oid}')