Skip to content

Commit db6f7c1

Browse files
committed
Fix webhooks
1 parent 8606c2b commit db6f7c1

1 file changed

Lines changed: 35 additions & 28 deletions

File tree

whatsapp_api_client_python/tools/webhooks.py

Lines changed: 35 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from whatsapp_api_client_python.response import Response
22
from datetime import datetime
3+
import json
34
from enum import Enum
45

56

@@ -36,62 +37,68 @@ def startReceivingNotifications(self) -> bool:
3637
def stopReceivingNotifications(self) -> bool:
3738
self.started = False
3839

39-
def onIncomingMessageReceived(body):
40+
def onIncomingMessageReceived(self, body):
4041
idMessage = body['idMessage']
4142
eventDate = datetime.fromtimestamp(body['timestamp'])
4243
senderData = body['senderData']
4344
messageData = body['messageData']
4445
print(idMessage + ': '
45-
+ 'At ' + eventDate + 'Incoming from ' \
46-
+ senderData + ' message = ' + messageData)
46+
+ 'At ' + str(eventDate) + ' Incoming from ' \
47+
+ json.dumps(senderData, ensure_ascii=False) \
48+
+ ' message = ' + json.dumps(messageData, ensure_ascii=False))
4749

48-
def onIncomingCall(body):
50+
def onIncomingCall(self, body):
4951
idMessage = body['idMessage']
5052
eventDate = datetime.fromtimestamp(body['timestamp'])
5153
fromWho = body['from']
5254
print(idMessage + ': '
5355
+ 'Call from ' + fromWho
5456
+ ' at ' + str(eventDate))
5557

56-
def onDeviceInfo(body):
58+
def onDeviceInfo(self, body):
5759
eventDate = datetime.fromtimestamp(body['timestamp'])
5860
deviceData = body['deviceData']
59-
print('At ' + eventDate + ': ' + deviceData)
61+
print('At ' + str(eventDate) + ': ' \
62+
+ json.dumps(deviceData, ensure_ascii=False))
6063

61-
def onOutgoingMessageReceived(body):
64+
def onOutgoingMessageReceived(self, body):
6265
idMessage = body['idMessage']
6366
eventDate = datetime.fromtimestamp(body['timestamp'])
6467
senderData = body['senderData']
6568
messageData = body['messageData']
6669
print(idMessage + ': '
67-
+ 'At ' + eventDate + 'Outgoing from ' \
68-
+ senderData + ' message = ' + messageData)
70+
+ 'At ' + str(eventDate) + ' Outgoing from ' \
71+
+ json.dumps(senderData, ensure_ascii=False) \
72+
+ ' message = ' + json.dumps(messageData, ensure_ascii=False))
6973

70-
def onOutgoingAPIMessageReceived(body):
74+
def onOutgoingAPIMessageReceived(self, body):
7175
idMessage = body['idMessage']
7276
eventDate = datetime.fromtimestamp(body['timestamp'])
7377
senderData = body['senderData']
7478
messageData = body['messageData']
7579
print(idMessage + ': '
76-
+ 'At ' + eventDate + ' API outgoing from ' + senderData + \
77-
' message = ' + messageData)
80+
+ 'At ' + str(eventDate) + ' API outgoing from ' \
81+
+ json.dumps(senderData, ensure_ascii=False) + \
82+
' message = ' + json.dumps(messageData, ensure_ascii=False))
7883

79-
def onOutgoingMessageStatus(body):
84+
def onOutgoingMessageStatus(self, body):
8085
idMessage = body['idMessage']
8186
status = body['status']
8287
eventDate = datetime.fromtimestamp(body['timestamp'])
8388
print(idMessage + ': '
84-
+ 'At ' + eventDate + ' status = ' + status)
89+
+ 'At ' + str(eventDate) + ' status = ' + status)
8590

86-
def onStateInstanceChanged(body):
91+
def onStateInstanceChanged(self, body):
8792
eventDate = datetime.fromtimestamp(body['timestamp'])
8893
stateInstance = body['stateInstance']
89-
print('At ' + eventDate + ' state instance = ' + stateInstance)
94+
print('At ' + str(eventDate) + ' state instance = ' \
95+
+ json.dumps(stateInstance, ensure_ascii=False))
9096

91-
def onStatusInstanceChanged(body):
97+
def onStatusInstanceChanged(self, body):
9298
eventDate = datetime.fromtimestamp(body['timestamp'])
9399
statusInstance = body['statusInstance']
94-
print('At ' + eventDate + ' status instance = ' + statusInstance)
100+
print('At ' + str(eventDate) + ' status instance = ' \
101+
+ json.dumps(statusInstance, ensure_ascii=False))
95102

96103
def job(self) -> None:
97104
print('Incoming notifications are being received. '\
@@ -106,27 +113,27 @@ def job(self) -> None:
106113
continue
107114
body = resultReceive.data['body']
108115
typeWebhook = body['typeWebhook']
109-
if typeWebhook == TypeWebhook.INCOMING_MESSAGE_RECEIVED:
116+
if typeWebhook == TypeWebhook.INCOMING_MESSAGE_RECEIVED.value:
110117
self.onIncomingMessageReceived(body)
111-
elif typeWebhook == TypeWebhook.DEVICE_INFO:
118+
elif typeWebhook == TypeWebhook.DEVICE_INFO.value:
112119
self.onDeviceInfo(body)
113-
elif typeWebhook == TypeWebhook.INCOMING_CALL:
120+
elif typeWebhook == TypeWebhook.INCOMING_CALL.value:
114121
self.onIncomingCall(body)
115-
elif typeWebhook == TypeWebhook.INCOMING_MESSAGE_RECEIVED:
122+
elif typeWebhook == TypeWebhook.INCOMING_MESSAGE_RECEIVED.value:
116123
self.onIncomingMessageReceived(body)
117-
elif typeWebhook == TypeWebhook.OUTGOING_API_MESSAGE_RECEIVED:
124+
elif typeWebhook == TypeWebhook.OUTGOING_API_MESSAGE_RECEIVED.value:
118125
self.onOutgoingAPIMessageReceived(body)
119-
elif typeWebhook == TypeWebhook.OUTGOING_MESSAGE_RECEIVED:
126+
elif typeWebhook == TypeWebhook.OUTGOING_MESSAGE_RECEIVED.value:
120127
self.onOutgoingMessageReceived(body)
121-
elif typeWebhook == TypeWebhook.OUTGOING_MESSAGE_STATUS:
128+
elif typeWebhook == TypeWebhook.OUTGOING_MESSAGE_STATUS.value:
122129
self.onOutgoingMessageStatus(body)
123-
elif typeWebhook == TypeWebhook.STATE_INSTANCE_CHANGED:
130+
elif typeWebhook == TypeWebhook.STATE_INSTANCE_CHANGED.value:
124131
self.onStateInstanceChanged(body)
125-
elif typeWebhook == TypeWebhook.STATUS_INSTANCE_CHANGED:
132+
elif typeWebhook == TypeWebhook.STATUS_INSTANCE_CHANGED.value:
126133
self.onStatusInstanceChanged(body)
127134
self.restApi.receiving.deleteNotification(
128135
resultReceive.data['receiptId'])
129136
print('End receiving')
130137
except KeyboardInterrupt:
131138
print('End receiving')
132-
pass
139+
pass

0 commit comments

Comments
 (0)