arkid_client.infrastructure.client 源代码
"""
Define InfrastructureClient
"""
from arkid_client.authorizers import BasicAuthorizer, NullAuthorizer
from arkid_client.base import BaseClient
from arkid_client.exceptions import InfrastructureAPIError, ArkIDSDKUsageError
from arkid_client.response import ArkIDHTTPResponse
[文档]class InfrastructureClient(BaseClient):
"""
基础设施管理客户端,用于与 ArkID 服务端基础设施管理相关
接口的访问操作。
**Methods**
* :py:meth:`.get_sms_captcha`
* :py:meth:`.verify_sms_captcha`
"""
allowed_authorizer_types = [BasicAuthorizer, NullAuthorizer]
error_class = InfrastructureAPIError
default_response_class = ArkIDHTTPResponse
def __init__(self, base_url, authorizer=None, **kwargs):
BaseClient.__init__(self, base_url, "infrastructure", authorizer=authorizer, **kwargs)
[文档] def get_sms_captcha(self, action: str, mobile: str, **kwargs):
"""
获取短信验证码
操作包括:注册、登录、重置密码、激活账号、重置手机、通用
(``POST /siteapi/v1/service/sms/*/``)
**Parameters**:
``action`` (*str*)
1)register (*注册*)
2)login (*登录*)
3)reset_password (*重置密码*)
4)activate_user (*激活账号*)
5)update_mobile (*重置手机*)
6) general (*通用*)
``mobile`` (*str*)
手机号
**Examples**
>>> ic = arkid_client.InfrastructureClient(...)
>>> node = ic.get_sms_captcha('register', 'example')
"""
actions_map = {
'register': 'sms/register/',
'login': 'sms/login/',
'reset_password': 'sms/reset_password/',
'activate_user': 'sms/activate_user/',
'update_mobile': 'sms/update_mobile/',
'general': 'sms/',
}
if action not in actions_map:
self.logger.info("无法发送验证码, 暂不支持的操作类型")
raise ArkIDSDKUsageError('无法为您发送验证码,暂不支持的操作类型(invalid action)')
kwargs.update(mobile=mobile)
self.logger.info("正在调用 InfrastructureClient.get_sms_captcha(action={}) 接口与 ArkID 服务端进行交互".
format(action))
return self.post(path=actions_map[action], json_body=kwargs)
[文档] def verify_sms_captcha(self, action: str, mobile: str, code: str):
"""
验证短信验证码
操作包括:注册、登录、重置密码、激活账号、重置手机、通用
(``GET /siteapi/v1/service/sms/*/``)
**Parameters**:
``action`` (*str*)
1)register (*注册*)
2)login (*登录*)
3)reset_password (*重置密码*)
4)activate_user (*激活账号*)
5)update_mobile (*重置手机*)
6) general (*通用*)
``mobile`` (*str*)
手机号
**Examples**
>>> ic = arkid_client.InfrastructureClient(...)
>>> node = ic.verify_sms_captcha('register', 'example')
"""
actions_map = {
'register': 'sms/register/',
'login': 'sms/login/',
'reset_password': 'sms/reset_password/',
'activate_user': 'sms/activate_user/',
'update_mobile': 'sms/update_mobile/',
'general': 'sms/',
}
if action not in actions_map:
self.logger.info("无法验证验证码, 暂不支持的操作类型")
raise ArkIDSDKUsageError('无法为您验证验证码,暂不支持的操作类型(invalid action)')
params = {'mobile': mobile, 'code': code}
self.logger.info("正在调用 InfrastructureClient.verify_sms_captcha(action={}) 接口与 ArkID 服务端进行交互".
format(action))
return self.get(path=actions_map[action], params=params)