33from smsapi .exception import EndpointException , SendException
44from smsapi .models import ResultCollection , SendResult , RemoveMessageResult
55from smsapi .sms import response_format_param
6- from smsapi .sms .model import SmsSendResult
6+ from smsapi .sms .model import SmsSendResult , SmsMFASendResult
77from smsapi .utils import join_params
88
99sms_parameters = [
3434 'test'
3535]
3636
37+ sms_mfa_parameters = [
38+ 'phone_number' ,
39+ 'from' ,
40+ 'from_' ,
41+ 'content' ,
42+ 'fast'
43+ ]
44+
45+ sms_mfa_verify_parameters = [
46+ 'phone_number' ,
47+ 'code'
48+ ]
49+
3750fast_force_params = {'fast' : 1 }
3851flash_force_params = {'flash' : 1 }
3952
@@ -55,6 +68,8 @@ def parameters_transformer(_, parameters):
5568class Sms (Api ):
5669
5770 path = 'sms.do'
71+ path_mfa = 'mfa/codes'
72+ path_mfa_verify = 'mfa/codes/verifications'
5873
5974 send = bind_api_endpoint (
6075 method = 'POST' ,
@@ -66,6 +81,26 @@ class Sms(Api):
6681 parameters_transformer = parameters_transformer
6782 )
6883
84+ send_mfa = bind_api_endpoint (
85+ method = 'POST' ,
86+ path = path_mfa ,
87+ mapping = (SendResult , SmsMFASendResult ),
88+ accept_parameters = sms_mfa_parameters ,
89+ force_parameters = response_format_param ,
90+ exception_class = SendException ,
91+ parameters_transformer = parameters_transformer
92+ )
93+
94+ verify_mfa = bind_api_endpoint (
95+ method = 'POST' ,
96+ path = path_mfa_verify ,
97+ mapping = (),
98+ accept_parameters = sms_mfa_verify_parameters ,
99+ force_parameters = response_format_param ,
100+ exception_class = EndpointException ,
101+ parameters_transformer = parameters_transformer
102+ )
103+
69104 send_fast = bind_api_endpoint (
70105 method = 'GET' ,
71106 path = path ,
0 commit comments