@@ -26,10 +26,11 @@ import ai.tock.bot.connector.whatsapp.cloud.model.send.manageTemplate.ResponseCr
26
26
import ai.tock.bot.connector.whatsapp.cloud.model.send.manageTemplate.WhatsAppCloudTemplate
27
27
import ai.tock.bot.connector.whatsapp.cloud.model.send.media.FileType
28
28
import ai.tock.bot.connector.whatsapp.cloud.model.send.media.MediaResponse
29
+ import ai.tock.bot.connector.whatsapp.cloud.model.send.message.WhatsAppCloudSendBotTemplateMessage
29
30
import ai.tock.bot.connector.whatsapp.cloud.model.send.message.WhatsAppCloudSendBotInteractiveMessage
31
+ import ai.tock.bot.connector.whatsapp.cloud.model.send.message.WhatsAppCloudSendBotImageMessage
30
32
import ai.tock.bot.connector.whatsapp.cloud.model.send.message.WhatsAppCloudSendBotLocationMessage
31
33
import ai.tock.bot.connector.whatsapp.cloud.model.send.message.WhatsAppCloudSendBotMessage
32
- import ai.tock.bot.connector.whatsapp.cloud.model.send.message.WhatsAppCloudSendBotTemplateMessage
33
34
import ai.tock.bot.connector.whatsapp.cloud.model.send.message.WhatsAppCloudSendBotTextMessage
34
35
import ai.tock.bot.connector.whatsapp.cloud.model.send.message.content.Component
35
36
import ai.tock.bot.connector.whatsapp.cloud.model.send.message.content.HeaderParameter
@@ -68,8 +69,11 @@ class WhatsAppCloudApiService(private val apiClient: WhatsAppCloudApiClient) {
68
69
try {
69
70
when (messageRequest) {
70
71
is WhatsAppCloudSendBotTextMessage ,
72
+
71
73
is WhatsAppCloudSendBotLocationMessage -> handleSimpleMessage(phoneNumberId, token, messageRequest)
72
74
75
+ is WhatsAppCloudSendBotImageMessage -> handleImageMessage(phoneNumberId, token, messageRequest)
76
+
73
77
is WhatsAppCloudSendBotInteractiveMessage -> handleInteractiveMessage(
74
78
phoneNumberId,
75
79
token,
@@ -83,6 +87,13 @@ class WhatsAppCloudApiService(private val apiClient: WhatsAppCloudApiClient) {
83
87
}
84
88
}
85
89
90
+ private fun handleImageMessage (phoneNumberId : String , token : String , messageRequest : WhatsAppCloudSendBotImageMessage ) {
91
+ replaceWithRealMessageImageId(messageRequest, phoneNumberId, token)
92
+ send(messageRequest) {
93
+ apiClient.graphApi.sendMessage(phoneNumberId, token, messageRequest).execute()
94
+ }
95
+ }
96
+
86
97
private fun handleSimpleMessage (phoneNumberId : String , token : String , messageRequest : WhatsAppCloudSendBotMessage ) {
87
98
send(messageRequest) {
88
99
apiClient.graphApi.sendMessage(phoneNumberId, token, messageRequest).execute()
@@ -302,6 +313,27 @@ class WhatsAppCloudApiService(private val apiClient: WhatsAppCloudApiClient) {
302
313
}
303
314
}
304
315
316
+ private fun replaceWithRealMessageImageId (
317
+ messageRequest : WhatsAppCloudSendBotImageMessage ,
318
+ phoneNumberId : String ,
319
+ token : String
320
+ ) {
321
+ val client = OkHttpClient .Builder ().apply (TockProxyAuthenticator ::install).build()
322
+
323
+ var res = sendMedia(
324
+ client,
325
+ phoneNumberId,
326
+ token,
327
+ messageRequest.image.id,
328
+ FileType .PNG .type
329
+ )
330
+
331
+ val image = messageRequest.image
332
+ val newImageId = res.id
333
+ image.id = newImageId
334
+ }
335
+
336
+
305
337
private fun replaceWithRealImageId (
306
338
messageRequest : WhatsAppCloudSendBotTemplateMessage ,
307
339
phoneNumberId : String ,
0 commit comments