Skip to content

Commit 232ef73

Browse files
authored
Merge pull request #29 from sendpulse/refactor_sms_methods
add functional sms methods
2 parents 24bc33f + 5ee8b14 commit 232ef73

File tree

2 files changed

+72
-4
lines changed

2 files changed

+72
-4
lines changed

pysendpulse/examples/sendpulse-rest-api-example.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -217,14 +217,14 @@
217217
]
218218
SPApiProxy.sms_get_phones_info_from_blacklist(phones)
219219

220-
# Create new sms campaign
221-
SPApiProxy.sms_add_campaign(SENDER_NAME, ADDRESSBOOK_ID, 'test')
220+
# Create new sms campaign by addressbook_id
221+
SPApiProxy.sms_add_campaign_by_addressbook_id(SENDER_NAME, ADDRESSBOOK_ID, 'test')
222222

223-
# Send sms by some phones
223+
# Create new sms campaign by some phones
224224
phones_for_send = [
225225
'11111111111'
226226
]
227-
SPApiProxy.sms_send(SENDER_NAME, phones_for_send, 'test')
227+
SPApiProxy.sms_add_campaign_by_phones(SENDER_NAME, phones_for_send, 'test')
228228

229229
# Get list of sms campaigns
230230
date_from = '2018-04-10 23:00:00'

pysendpulse/pysendpulse.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import logging
1313
import base64
1414
from hashlib import md5
15+
from deprecated import deprecated
1516

1617
try:
1718
import simplejson as json
@@ -975,9 +976,11 @@ def sms_delete_phones_from_blacklist(self, phones):
975976
logger.info("Function call: sms_add_phones_to_blacklist")
976977
return self.__handle_result(self.__send_request('sms/black_list', 'DELETE', data_to_send))
977978

979+
@deprecated(version='0.1.4', reason="You should use sms_add_campaign_by_addressbook_id")
978980
def sms_add_campaign(self, sender_name, addressbook_id, body, date=None, transliterate=False):
979981
""" Create new sms campaign
980982
983+
@deprecated: use method sms_delete_phonesfrom_blacklist
981984
@param sender_name: string senders name
982985
@param addressbook_id: unsigned int addressbook ID
983986
@param body: string campaign body
@@ -1004,6 +1007,7 @@ def sms_add_campaign(self, sender_name, addressbook_id, body, date=None, transli
10041007

10051008
return self.__handle_result(self.__send_request('sms/campaigns', 'POST', data_to_send))
10061009

1010+
@deprecated(version='0.1.4', reason="You should use sms_add_campaign_by_phones")
10071011
def sms_send(self, sender_name, phones, body, date=None, transliterate=False):
10081012
""" Send sms by some phones
10091013
@@ -1039,6 +1043,70 @@ def sms_send(self, sender_name, phones, body, date=None, transliterate=False):
10391043

10401044
return self.__handle_result(self.__send_request('sms/send', 'POST', data_to_send))
10411045

1046+
def sms_add_campaign_by_addressbook_id(self, sender_name, addressbook_id, body, additional_params={}):
1047+
""" Create new sms campaign by addressbook_id
1048+
1049+
@param sender_name: string senders name
1050+
@param addressbook_id: unsigned int addressbook ID
1051+
@param body: string campaign body
1052+
@param additional_params: dictionary additional params for sms task
1053+
@return: dictionary with response message
1054+
"""
1055+
1056+
logger.info("Function call: sms_add_campaign_by_addressbook_id")
1057+
if not sender_name:
1058+
return self.__handle_error('Seems you not pass sender name')
1059+
if not addressbook_id:
1060+
return self.__handle_error('Seems you not pass addressbook ID')
1061+
if not body:
1062+
return self.__handle_error('Seems you not pass sms text')
1063+
1064+
data_to_send = {
1065+
'sender': sender_name,
1066+
'addressBookId': addressbook_id,
1067+
'body': body
1068+
}
1069+
1070+
if additional_params:
1071+
data_to_send.update(additional_params)
1072+
1073+
return self.__handle_result(self.__send_request('sms/campaigns', 'POST', data_to_send))
1074+
1075+
def sms_add_campaign_by_phones(self, sender_name, phones, body, additional_params={}):
1076+
""" Create new sms campaign by some phones
1077+
1078+
@param sender_name: string senders name
1079+
@param phones: array phones
1080+
@param body: string campaign body
1081+
@param additional_params: dictionary additional params for sms task
1082+
@return: dictionary with response message
1083+
"""
1084+
1085+
logger.info("Function call: sms_add_campaign_by_phones")
1086+
if not sender_name:
1087+
return self.__handle_error('Seems you not pass sender name')
1088+
if not phones:
1089+
return self.__handle_error('Seems you not pass phones')
1090+
if not body:
1091+
return self.__handle_error('Seems you not pass sms text')
1092+
1093+
try:
1094+
phones = json.dumps(phones)
1095+
except:
1096+
logger.debug("Phones: {}".format(phones))
1097+
return self.__handle_error("Phones list can't be converted by JSON library")
1098+
1099+
data_to_send = {
1100+
'sender': sender_name,
1101+
'phones': phones,
1102+
'body': body,
1103+
}
1104+
1105+
if additional_params:
1106+
data_to_send.update(additional_params)
1107+
1108+
return self.__handle_result(self.__send_request('sms/send', 'POST', data_to_send))
1109+
10421110
def sms_get_list_campaigns(self, date_from, date_to):
10431111
""" SMS: get list of campaigns
10441112

0 commit comments

Comments
 (0)