Skip to content

Commit 5edb1d9

Browse files
the-veloperin-void
authored andcommitted
mfa send verify
1 parent 92278f9 commit 5edb1d9

2 files changed

Lines changed: 59 additions & 1 deletion

File tree

smsapi/sms/api.py

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from smsapi.exception import EndpointException, SendException
44
from smsapi.models import ResultCollection, SendResult, RemoveMessageResult
55
from smsapi.sms import response_format_param
6-
from smsapi.sms.model import SmsSendResult
6+
from smsapi.sms.model import SmsSendResult, SmsMFASendResult
77
from smsapi.utils import join_params
88

99
sms_parameters = [
@@ -34,6 +34,19 @@
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+
3750
fast_force_params = {'fast': 1}
3851
flash_force_params = {'flash': 1}
3952

@@ -55,6 +68,8 @@ def parameters_transformer(_, parameters):
5568
class 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,

smsapi/sms/model.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,26 @@ def parse(cls, json_response, model):
2626
collection.append(m)
2727

2828
return cls(count, collection, message=message, length=length, parts=parts)
29+
30+
31+
class SmsMFASendResult(ResultCollection):
32+
33+
def __init__(self, id, code, phone_number, from_):
34+
super(SmsMFASendResult, self).__init__(1, [{'id': id, 'code': code, 'phone_number': phone_number, 'from': from_}])
35+
36+
@classmethod
37+
def parse(cls, json_response, model):
38+
id = json_response.get('id')
39+
code = json_response.get('code')
40+
phone_number = json_response.get('phone_number')
41+
from_ = json_response.get('from')
42+
43+
sms_list = [json_response]
44+
45+
collection = []
46+
47+
for sms in sms_list:
48+
m = model.from_dict(sms)
49+
collection.append(m)
50+
51+
return cls(1, collection, id=id, code=code, phone_number=phone_number, from_=from_)

0 commit comments

Comments
 (0)