arkid_client.org.client 源代码

"""
Define OrgClient
"""
from arkid_client.authorizers import BasicAuthorizer
from arkid_client.base import BaseClient
from arkid_client.exceptions import OrgAPIError
from arkid_client.response import ArkIDHTTPResponse


[文档]class OrgClient(BaseClient): """ 组织管理客户端,用于与 ArkID 服务端组织管理相关 接口的访问操作。 **Methods** * :py:meth:`.query_own_org` * :py:meth:`.query_org` * :py:meth:`.create_org` * :py:meth:`.delete_org` * :py:meth:`.update_org` * :py:meth:`.query_orguser` * :py:meth:`.add_orguser` * :py:meth:`.delete_orguser` * :py:meth:`.query_orguser` * :py:meth:`.update_orguser` * :py:meth:`.get_org_invitation_key` * :py:meth:`.refresh_org_invitation_key` * :py:meth:`.view_org_by_invitation_key` * :py:meth:`.join_org_by_invitation_key` """ allowed_authorizer_types = [BasicAuthorizer] error_class = OrgAPIError default_response_class = ArkIDHTTPResponse def __init__(self, base_url, authorizer=None, **kwargs): BaseClient.__init__(self, base_url, "org", authorizer=authorizer, **kwargs)
[文档] def query_own_org(self, **params): """ 查询用户所在的组织 (``GET /siteapi/v1/org/``) **Parameters**: ``role`` (*str*) 在组织内的角色 **Examples** >>> oc = arkid_client.OrgClient(...) >>> orgs = oc.query_own_org(role='admin') >>> for org in orgs: >>> print(org['oid'], 'name: ' >>> ,org['name']) """ self.logger.info("正在调用 OrgClient.query_own_org() 接口与 ArkID 服务端进行交互") return self.get(path='', params=params)
[文档] def query_org(self, oid: str): """ 查看指定组织的信息 (``GET /siteapi/v1/org/<oid>/``) **Parameters**: ``oid`` (*str*) 组织的唯一标识 **Examples** >>> oc = arkid_client.OrgClient(...) >>> org = oc.query_org(oid) >>> print(org['oid'], 'name: ' >>> ,org['name']) """ self.logger.info("正在调用 OrgClient.query_org() 接口与 ArkID 服务端进行交互") return self.get(path='{}/'.format(oid))
[文档] def create_org(self, json_body: dict): """ 创建组织 (``POST /siteapi/v1/org/``) **Parameters**: ``json_body`` (*dict*) 组织的元信息, 参数详情请参考接口文档 **Examples** >>> oc = arkid_client.OrgClient(...) >>> org_data = { >>> "name": "example", >>> } >>> org = oc.create_org(org_data) >>> print(org['oid'], 'name: ' >>> ,org['name']) **External Documentation** 关于 `组织的元数据 \ <https://arkid.docs.apiary.io/#reference/org/0/1>`_ 详情请参阅API文档。 """ self.logger.info("正在调用 OrgClient.create_org() 接口与 ArkID 服务端进行交互") return self.post(path='', json_body=json_body)
[文档] def delete_org(self, oid: str): """ 删除指定组织的信息 (``DELETE /siteapi/v1/org/<oid>/``) **Parameters**: ``oid`` (*str*) 组织的唯一标识 **Examples** >>> oc = arkid_client.OrgClient(...) >>> oc.delete_org(oid) """ self.logger.info("正在调用 OrgClient.delete_org() 接口与 ArkID 服务端进行交互") return self.delete(path='{}/'.format(oid))
[文档] def update_org(self, oid: str, json_body: dict): """ 修改指定组织的信息 (``PATCH /siteapi/v1/org/<oid>/``) **Parameters**: ``oid`` (*str*) 组织的唯一标识 ``json_body`` (*dict*) 组织的元信息, 参数详情请参考接口文档 **Examples** >>> oc = arkid_client.OrgClient(...) >>> org_data = { >>> "name": "example", >>> } >>> org = oc.update_org(oid, org_data) >>> print(org['oid'], 'name: ' >>> ,org['name']) **External Documentation** 关于 `组织的元数据 \ <https://arkid.docs.apiary.io/#reference/org/1/2>`_ 详情请参阅API文档。 """ self.logger.info("正在调用 OrgClient.update_org() 接口与 ArkID 服务端进行交互") return self.patch(path='{}/'.format(oid), json_body=json_body)
[文档] def query_orguser_list(self, oid: str, **params): """ 查看特定组织的成员信息 (``GET /siteapi/v1/org/<oid>/user/``) **Parameters**: ``oid`` (*str*) 组织的唯一标识 ``page`` (*int*) 用于分页,*Default: 1* ``page_size`` (*int*) 指定分页大小,*Default: 30* **Examples** >>> oc = arkid_client.OrgClient(...) >>> org = oc.query_orguser_list(oid) >>> print(org['oid'], 'name: ' >>> ,org['name']) """ self.logger.info("正在调用 OrgClient.query_orguser_list() 接口与 ArkID 服务端进行交互") return self.get(path='{}/user/'.format(oid), params=params)
[文档] def add_orguser(self, oid: str, usernames: list): """ 向指定组织中添加成员 (``PATCH /siteapi/v1/org/<oid>/user/``) **Parameters**: ``oid`` (*str*) 组织的唯一标识 ``usernames`` (*list*) 用户的唯一标识组成的列表 **Examples** >>> oc = arkid_client.OrgClient(...) >>> usernames = [ >>> 'username1', >>> 'username2', >>> ... >>> 'usernamen' >>> ] >>> org = oc.add_orguser(oid, usernames) >>> print(org['oid'], 'name: ' >>> ,org['name']) """ self.logger.info("正在调用 OrgClient.add_orguser() 接口与 ArkID 服务端进行交互") json_body = {'subject': 'add', 'usernames': usernames} return self.patch(path='{}/user/'.format(oid), json_body=json_body)
[文档] def delete_orguser(self, oid: str, usernames: list): """ 从指定组织中移除成员 (``PATCH /siteapi/v1/org/<oid>/user/``) **Parameters**: ``oid`` (*str*) 组织的唯一标识 ``usernames`` (*list*) 用户的唯一标识组成的列表 **Examples** >>> oc = arkid_client.OrgClient(...) >>> usernames = [ >>> 'username1', >>> 'username2', >>> ... >>> 'usernamen' >>> ] >>> org = oc.delete_orguser(oid, usernames) >>> print(org['oid'], 'name: ' >>> ,org['name']) """ self.logger.info("正在调用 OrgClient.delete_orguser() 接口与 ArkID 服务端进行交互") json_body = {'subject': 'delete', 'usernames': usernames} return self.patch(path='{}/user/'.format(oid), json_body=json_body)
[文档] def query_orguser(self, oid: str, username: str): """ 查看指定组织的指定成员的信息 (``GET /siteapi/v1/org/<oid>/user/<username>/``) **Parameters**: ``oid`` (*str*) 组织的唯一标识 ``username`` (*str*) 用户唯一标识 **Examples** >>> oc = arkid_client.OrgClient(...) >>> user = oc.query_orguser(oid, username) >>> print('user is', user) """ self.logger.info("正在调用 OrgClient.query_orguser() 接口与 ArkID 服务端进行交互") return self.get(path='{}/user/{}/'.format(oid, username))
[文档] def update_orguser(self, oid: str, username: str, json_body: dict): """ 编辑指定组织的指定成员的信息 (``PATCH /siteapi/v1/org/<oid>/user/<username>/``) **Parameters**: ``oid`` (*str*) 组织的唯一标识 ``username`` (*str*) 用户唯一标识 ``json_body`` (*dict*) ``email`` (*str*) 成员邮箱 ``employee_number`` (*str*) 成员工号 ``position`` (*str*) 成员职位 ``hiredate`` (*str*) 成员雇佣日期 ``remark`` (*str*) 成员备注 **Examples** >>> oc = arkid_client.OrgClient(...) >>> user_data = { >>> "email": "example@org.com", >>> } >>> user = oc.update_orguser(oid, username, user_data) >>> print(user['id'], 'name: ' >>> ,user['name']) **External Documentation** 关于 `成员的元数据 \ <https://arkid.docs.apiary.io/#reference/org/3/1>`_ 详情请参阅API文档。 """ self.logger.info("正在调用 OrgClient.update_orguser() 接口与 ArkID 服务端进行交互") return self.patch(path='{}/user/{}/'.format(oid, username), json_body=json_body)
[文档] def get_org_invitation_key(self, oid: str): """ 获取指定组织邀请用的最新的密钥 (``GET /siteapi/v1/org/<oid>/invitation/``) **Parameters**: ``oid`` (*str*) 组织的唯一标识 **Examples** >>> oc = arkid_client.OrgClient(...) >>> key = oc.get_org_invitation_key(oid) >>> print('key: ', key) """ self.logger.info("正在调用 OrgClient.get_org_invitation_key() 接口与 ArkID 服务端进行交互") return self.get(path='{}/invitation/'.format(oid))
[文档] def refresh_org_invitation_key(self, oid: str): """ 刷新指定组织邀请用的最新的密钥 (``PUT /siteapi/v1/org/<oid>/invitation/``) **Parameters**: ``oid`` (*str*) 组织的唯一标识 **Examples** >>> oc = arkid_client.OrgClient(...) >>> key = oc.refresh_org_invitation_key(oid) >>> print('key: ', key) """ self.logger.info("正在调用 OrgClient.get_org_invitation_key() 接口与 ArkID 服务端进行交互") return self.put(path='{}/invitation/'.format(oid))
[文档] def view_org_by_invitation_key(self, oid: str, invite_link_key: str): """ 使用邀请密钥查看指定组织的信息 (``GET /siteapi/v1/org/<oid>/invitation/<invite_link_key>/``) **Parameters**: ``oid`` (*str*) 组织的唯一标识 ``invite_link_key`` (*str*) 组织邀请密钥 **Examples** >>> oc = arkid_client.OrgClient(...) >>> org = oc.view_org_by_invitation_key(oid, invite_link_key) >>> print('org: ', org) """ self.logger.info("正在调用 OrgClient.view_org_by_invitation_key() 接口与 ArkID 服务端进行交互") return self.get(path='{}/invitation/{}/'.format(oid, invite_link_key))
[文档] def join_org_by_invitation_key(self, oid: str, invite_link_key: str): """ 使用邀请密钥加入指定组织 (``POST /siteapi/v1/org/<oid>/invitation/<invite_link_key>/``) **Parameters**: ``oid`` (*str*) 组织的唯一标识 ``invite_link_key`` (*str*) 组织邀请密钥 **Examples** >>> oc = arkid_client.OrgClient(...) >>> org = oc.join_org_by_invitation_key(oid, invite_link_key) >>> print('org: ', org) """ self.logger.info("正在调用 OrgClient.join_org_by_invitation_key() 接口与 ArkID 服务端进行交互") return self.post(path='{}/invitation/{}/'.format(oid, invite_link_key))