@@ -40,6 +40,12 @@ def send_inbox_message(self, request):
4040 resp = self .send_request ('POST' , self .url + "/v1/send/inbox_message" , request )
4141 return json .loads (resp )
4242
43+ def send_in_app (self , request ):
44+ if isinstance (request , SendInAppRequest ):
45+ request = request ._to_dict ()
46+ resp = self .send_request ('POST' , self .url + "/v1/send/in_app" , request )
47+ return json .loads (resp )
48+
4349 # builds the session.
4450 def _build_session (self ):
4551 session = super ()._build_session ()
@@ -311,3 +317,44 @@ def _to_dict(self):
311317 data [name ] = value
312318
313319 return data
320+
321+ class SendInAppRequest (object ):
322+ '''An object with all the options available for triggering a transactional in-app message'''
323+ def __init__ (self ,
324+ transactional_message_id = None ,
325+ identifiers = None ,
326+ disable_message_retention = None ,
327+ queue_draft = None ,
328+ message_data = None ,
329+ send_at = None ,
330+ language = None ,
331+ ):
332+
333+ self .transactional_message_id = transactional_message_id
334+ self .identifiers = identifiers
335+ self .disable_message_retention = disable_message_retention
336+ self .queue_draft = queue_draft
337+ self .message_data = message_data
338+ self .send_at = send_at
339+ self .language = language
340+
341+ def _to_dict (self ):
342+ '''Build a request payload from the object'''
343+ field_map = dict (
344+ # field name is the same as the payload field name
345+ transactional_message_id = "transactional_message_id" ,
346+ identifiers = "identifiers" ,
347+ disable_message_retention = "disable_message_retention" ,
348+ queue_draft = "queue_draft" ,
349+ message_data = "message_data" ,
350+ send_at = "send_at" ,
351+ language = "language" ,
352+ )
353+
354+ data = {}
355+ for field , name in field_map .items ():
356+ value = getattr (self , field , None )
357+ if value is not None :
358+ data [name ] = value
359+
360+ return data
0 commit comments