dingtalk.client.api.department 源代码

# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals

from dingtalk.client.api.base import DingTalkBaseAPI


[文档]class Department(DingTalkBaseAPI):
[文档] def list_ids(self, _id=1): """ 获取子部门ID列表 :param _id: 父部门id(如果不传,默认部门为根部门,根部门ID为1) :return: 子部门ID列表数据 """ return self._get( '/department/list_ids', {'id': _id}, result_processor=lambda x: x['sub_dept_id_list'] )
[文档] def list(self, _id=1, lang='zh_CN', fetch_child=False): """ 获取部门列表 :param _id: 父部门id(如果不传,默认部门为根部门,根部门ID为1) :param lang: 通讯录语言(默认zh_CN,未来会支持en_US) :param fetch_child: 是否递归部门的全部子部门,ISV微应用固定传递false。 :return: 部门列表数据。以部门的order字段从小到大排列 """ return self._get( '/department/list', {'id': _id, 'lang': lang, 'fetch_child': fetch_child}, result_processor=lambda x: x['department'] )
[文档] def get(self, _id, lang='zh_CN'): """ 获取部门详情 :param _id: 部门id :param lang: 通讯录语言(默认zh_CN,未来会支持en_US) :return: 部门列表数据。以部门的order字段从小到大排列 """ return self._get( '/department/get', {'id': _id, 'lang': lang} )
[文档] def create(self, department_data): """ 创建部门 :param department_data: 部门信息 :return: 创建的部门id """ if 'id' in department_data: raise AttributeError('不能包含Id') return self._post( '/department/create', department_data, result_processor=lambda x: x['id'] )
[文档] def update(self, department_data): """ 更新部门 :param department_data: 部门信息 :return: 已经更新的部门id """ if 'id' not in department_data: raise AttributeError('必须包含Id') return self._post( '/department/update', department_data, result_processor=lambda x: x['id'] )
[文档] def delete(self, _id): """ 删除部门 :param _id: 部门id。(注:不能删除根部门;不能删除含有子部门、成员的部门) :return: """ return self._get( '/department/delete', {'id': _id} )
[文档] def list_parent_depts_by_dept(self, _id): """ 查询部门的所有上级父部门路径 :param _id: 希望查询的部门的id,包含查询的部门本身 :return: 该部门的所有父部门id列表 """ return self._get( '/department/list_parent_depts_by_dept', {'id': _id}, result_processor=lambda x: x['parentIds'] )
[文档] def list_parent_depts(self, user_id): """ 查询指定用户的所有上级父部门路径 :param user_id: 希望查询的用户的id :return: 按顺序依次为其所有父部门的ID,直到根部门 """ return self._get( '/department/list_parent_depts', {'userId': user_id}, result_processor=lambda x: x['department'] )