@@ -27,6 +27,12 @@ def send_push(self, request):
2727 request = request ._to_dict ()
2828 resp = self .send_request ('POST' , self .url + "/v1/send/push" , request )
2929 return json .loads (resp )
30+
31+ def send_sms (self , request ):
32+ if isinstance (request , SendSMSRequest ):
33+ request = request ._to_dict ()
34+ resp = self .send_request ('POST' , self .url + "/v1/send/sms" , request )
35+ return json .loads (resp )
3036
3137 # builds the session.
3238 def _build_session (self ):
@@ -211,3 +217,50 @@ def _to_dict(self):
211217 data [name ] = value
212218
213219 return data
220+
221+ class SendSMSRequest (object ):
222+ '''An object with all the options avaiable for triggering a transactional push message'''
223+ def __init__ (self ,
224+ transactional_message_id = None ,
225+ to = None ,
226+ identifiers = None ,
227+ disable_message_retention = None ,
228+ send_to_unsubscribed = None ,
229+ queue_draft = None ,
230+ message_data = None ,
231+ send_at = None ,
232+ language = None ,
233+ ):
234+
235+ self .transactional_message_id = transactional_message_id
236+ self .to = to
237+ self .identifiers = identifiers
238+ self .disable_message_retention = disable_message_retention
239+ self .send_to_unsubscribed = send_to_unsubscribed
240+ self .queue_draft = queue_draft
241+ self .message_data = message_data
242+ self .send_at = send_at
243+ self .language = language
244+
245+ def _to_dict (self ):
246+ '''Build a request payload from the object'''
247+ field_map = dict (
248+ # field name is the same as the payload field name
249+ transactional_message_id = "transactional_message_id" ,
250+ to = "to" ,
251+ identifiers = "identifiers" ,
252+ disable_message_retention = "disable_message_retention" ,
253+ send_to_unsubscribed = "send_to_unsubscribed" ,
254+ queue_draft = "queue_draft" ,
255+ message_data = "message_data" ,
256+ send_at = "send_at" ,
257+ language = "language" ,
258+ )
259+
260+ data = {}
261+ for field , name in field_map .items ():
262+ value = getattr (self , field , None )
263+ if value is not None :
264+ data [name ] = value
265+
266+ return data
0 commit comments