11from whatsapp_api_client_python .response import Response
2- from datetime import datetime
3- import json
42from enum import Enum
53
64
@@ -30,77 +28,15 @@ def __init__(self, restApi) -> None:
3028 self .restApi = restApi
3129 self .started = False
3230
33- def startReceivingNotifications (self ) -> bool :
31+ def startReceivingNotifications (self , onEvent ) -> bool :
3432 self .started = True
35- self .job ()
33+ self .job (onEvent )
3634
3735 def stopReceivingNotifications (self ) -> bool :
3836 self .started = False
3937
40- def onIncomingMessageReceived (self , body ):
41- idMessage = body ['idMessage' ]
42- eventDate = datetime .fromtimestamp (body ['timestamp' ])
43- senderData = body ['senderData' ]
44- messageData = body ['messageData' ]
45- print (idMessage + ': '
46- + 'At ' + str (eventDate ) + ' Incoming from ' \
47- + json .dumps (senderData , ensure_ascii = False ) \
48- + ' message = ' + json .dumps (messageData , ensure_ascii = False ))
49-
50- def onIncomingCall (self , body ):
51- idMessage = body ['idMessage' ]
52- eventDate = datetime .fromtimestamp (body ['timestamp' ])
53- fromWho = body ['from' ]
54- print (idMessage + ': '
55- + 'Call from ' + fromWho
56- + ' at ' + str (eventDate ))
57-
58- def onDeviceInfo (self , body ):
59- eventDate = datetime .fromtimestamp (body ['timestamp' ])
60- deviceData = body ['deviceData' ]
61- print ('At ' + str (eventDate ) + ': ' \
62- + json .dumps (deviceData , ensure_ascii = False ))
63-
64- def onOutgoingMessageReceived (self , body ):
65- idMessage = body ['idMessage' ]
66- eventDate = datetime .fromtimestamp (body ['timestamp' ])
67- senderData = body ['senderData' ]
68- messageData = body ['messageData' ]
69- print (idMessage + ': '
70- + 'At ' + str (eventDate ) + ' Outgoing from ' \
71- + json .dumps (senderData , ensure_ascii = False ) \
72- + ' message = ' + json .dumps (messageData , ensure_ascii = False ))
73-
74- def onOutgoingAPIMessageReceived (self , body ):
75- idMessage = body ['idMessage' ]
76- eventDate = datetime .fromtimestamp (body ['timestamp' ])
77- senderData = body ['senderData' ]
78- messageData = body ['messageData' ]
79- print (idMessage + ': '
80- + 'At ' + str (eventDate ) + ' API outgoing from ' \
81- + json .dumps (senderData , ensure_ascii = False ) + \
82- ' message = ' + json .dumps (messageData , ensure_ascii = False ))
83-
84- def onOutgoingMessageStatus (self , body ):
85- idMessage = body ['idMessage' ]
86- status = body ['status' ]
87- eventDate = datetime .fromtimestamp (body ['timestamp' ])
88- print (idMessage + ': '
89- + 'At ' + str (eventDate ) + ' status = ' + status )
90-
91- def onStateInstanceChanged (self , body ):
92- eventDate = datetime .fromtimestamp (body ['timestamp' ])
93- stateInstance = body ['stateInstance' ]
94- print ('At ' + str (eventDate ) + ' state instance = ' \
95- + json .dumps (stateInstance , ensure_ascii = False ))
96-
97- def onStatusInstanceChanged (self , body ):
98- eventDate = datetime .fromtimestamp (body ['timestamp' ])
99- statusInstance = body ['statusInstance' ]
100- print ('At ' + str (eventDate ) + ' status instance = ' \
101- + json .dumps (statusInstance , ensure_ascii = False ))
102-
103- def job (self ) -> None :
38+
39+ def job (self , onEvent ) -> None :
10440 print ('Incoming notifications are being received. ' \
10541 'To interrupt, press Ctrl+C' )
10642 try :
@@ -113,24 +49,7 @@ def job(self) -> None:
11349 continue
11450 body = resultReceive .data ['body' ]
11551 typeWebhook = body ['typeWebhook' ]
116- if typeWebhook == TypeWebhook .INCOMING_MESSAGE_RECEIVED .value :
117- self .onIncomingMessageReceived (body )
118- elif typeWebhook == TypeWebhook .DEVICE_INFO .value :
119- self .onDeviceInfo (body )
120- elif typeWebhook == TypeWebhook .INCOMING_CALL .value :
121- self .onIncomingCall (body )
122- elif typeWebhook == TypeWebhook .INCOMING_MESSAGE_RECEIVED .value :
123- self .onIncomingMessageReceived (body )
124- elif typeWebhook == TypeWebhook .OUTGOING_API_MESSAGE_RECEIVED .value :
125- self .onOutgoingAPIMessageReceived (body )
126- elif typeWebhook == TypeWebhook .OUTGOING_MESSAGE_RECEIVED .value :
127- self .onOutgoingMessageReceived (body )
128- elif typeWebhook == TypeWebhook .OUTGOING_MESSAGE_STATUS .value :
129- self .onOutgoingMessageStatus (body )
130- elif typeWebhook == TypeWebhook .STATE_INSTANCE_CHANGED .value :
131- self .onStateInstanceChanged (body )
132- elif typeWebhook == TypeWebhook .STATUS_INSTANCE_CHANGED .value :
133- self .onStatusInstanceChanged (body )
52+ onEvent (typeWebhook , body )
13453 self .restApi .receiving .deleteNotification (
13554 resultReceive .data ['receiptId' ])
13655 print ('End receiving' )
0 commit comments