-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathapi.py
More file actions
81 lines (63 loc) · 2.04 KB
/
Copy pathapi.py
File metadata and controls
81 lines (63 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import os
from smsapi.api import Api
from smsapi.endpoint import bind_api_endpoint
from smsapi.exception import EndpointException, SendException
from smsapi.models import SendResult, ResultCollection, RemoveMessageResult
from smsapi.sms import response_format_param
from smsapi.utils import join_params
accept_parameters = [
'from',
'tts',
'file',
'tts_lector',
'date',
'date_validate',
'try_',
'interval',
'skip_gms',
'idx',
'check_idx',
'notify_url',
'test'
]
def parameters_transformer(api_endpoint, parameters):
join_params(parameters, ['idx'], '|')
if 'try_' in parameters:
parameters['try'] = parameters.pop('try_')
if 'file' in parameters and os.path.isfile(parameters.get('file')):
api_endpoint.add_file(open(parameters.pop('file'), 'rb'))
return parameters
def delete_sms_params_transformer(_, parameters):
join_params(parameters, ['sch_del'])
if 'id' in parameters:
parameters['sch_del'] = parameters.pop('id')
return parameters
class Vms(Api):
path = 'vms.do'
send = bind_api_endpoint(
method='POST',
path=path,
mapping=(SendResult, ResultCollection),
accept_parameters=accept_parameters + ['to'],
force_parameters=response_format_param,
exception_class=SendException,
parameters_transformer=parameters_transformer
)
send_to_group = bind_api_endpoint(
method='POST',
path=path,
mapping=(SendResult, ResultCollection),
accept_parameters=accept_parameters + ['group'],
force_parameters=response_format_param,
exception_class=SendException,
parameters_transformer=parameters_transformer
)
remove_scheduled = bind_api_endpoint(
method='POST',
path=path,
mapping=(RemoveMessageResult, ResultCollection),
accept_parameters=['id'],
force_parameters=response_format_param,
exception_class=EndpointException,
parameters_transformer=delete_sms_params_transformer
)