Skip to content

Commit c4d5d0c

Browse files
BENKACI Amiravsct-jburet
BENKACI Amira
authored andcommitted
Addition of QR for configured stories whasappCloud
1 parent 7a71c9c commit c4d5d0c

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed

bot/connector-whatsapp-cloud/src/main/kotlin/WhatsAppConnectorCloudConnector.kt

+10
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,13 @@ package ai.tock.bot.connector.whatsapp.cloud
1919
import ai.tock.bot.connector.ConnectorBase
2020
import ai.tock.bot.connector.ConnectorCallback
2121
import ai.tock.bot.connector.ConnectorData
22+
import ai.tock.bot.connector.ConnectorMessage
2223
import ai.tock.bot.connector.whatsapp.cloud.model.send.manageTemplate.WhatsAppCloudTemplate
24+
import ai.tock.bot.connector.whatsapp.cloud.model.send.message.WhatsAppCloudBotMessage
25+
import ai.tock.bot.connector.whatsapp.cloud.model.send.message.content.WhatsAppCloudBotActionButton
26+
import ai.tock.bot.connector.whatsapp.cloud.model.send.message.content.WhatsAppCloudBotActionButtonReply
27+
import ai.tock.bot.connector.whatsapp.cloud.model.send.message.content.WhatsAppCloudBotInteractive
28+
import ai.tock.bot.connector.whatsapp.cloud.model.send.message.content.WhatsAppCloudBotInteractiveMessage
2329
import ai.tock.bot.connector.whatsapp.cloud.model.webhook.Change
2430
import ai.tock.bot.connector.whatsapp.cloud.model.webhook.Entry
2531
import ai.tock.bot.connector.whatsapp.cloud.model.webhook.WebHookEventReceiveMessage
@@ -29,6 +35,7 @@ import ai.tock.bot.connector.whatsapp.cloud.services.WhatsAppCloudApiService
2935
import ai.tock.bot.definition.IntentAware
3036
import ai.tock.bot.definition.StoryHandlerDefinition
3137
import ai.tock.bot.definition.StoryStep
38+
import ai.tock.bot.engine.BotBus
3239
import ai.tock.bot.engine.BotRepository
3340
import ai.tock.bot.engine.ConnectorController
3441
import ai.tock.bot.engine.action.Action
@@ -213,4 +220,7 @@ class WhatsAppConnectorCloudConnector internal constructor(
213220
)
214221
)
215222
}
223+
224+
override fun addSuggestions(text: CharSequence, suggestions: List<CharSequence>): BotBus.() -> ConnectorMessage? =
225+
{ whatsAppCloudReplyButtonMessage(text.toString(), suggestions.map { whatsAppCloudNlpQuickReply(it) }) }
216226
}

bot/connector-whatsapp-cloud/src/main/kotlin/model/send/message/WhatsAppCloudBotMessage.kt

+39
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ import ai.tock.bot.connector.whatsapp.cloud.UserHashedIdCache
2222
import ai.tock.bot.connector.whatsapp.cloud.WhatsAppCloudConnectorMessage
2323
import ai.tock.bot.connector.whatsapp.cloud.model.send.message.content.*
2424
import ai.tock.bot.connector.whatsapp.cloud.whatsAppCloudConnectorType
25+
import ai.tock.bot.definition.Intent
26+
import ai.tock.bot.engine.action.SendChoice
27+
import ai.tock.bot.engine.action.SendChoice.Companion.TITLE_PARAMETER
28+
import ai.tock.bot.engine.message.Choice
29+
import ai.tock.bot.engine.message.GenericMessage
2530
import com.fasterxml.jackson.annotation.JsonIgnore
2631
import com.fasterxml.jackson.annotation.JsonProperty
2732
import com.fasterxml.jackson.annotation.JsonSubTypes
@@ -57,4 +62,38 @@ abstract class WhatsAppCloudBotMessage (val type: WhatsAppCloudBotMessageType, @
5762

5863
@get:JsonIgnore
5964
val to: String get() = userId?.let { UserHashedIdCache.getRealId(it) } ?: "unknown"
65+
66+
67+
68+
override fun toGenericMessage(): GenericMessage? {
69+
70+
return when(this) {
71+
is WhatsAppCloudBotInteractiveMessage -> GenericMessage(
72+
connectorType = whatsAppCloudConnectorType,
73+
choices = interactive.action?.buttons?.mapNotNull { actionButton ->
74+
actionButton.reply.let {
75+
76+
SendChoice.decodeChoiceId(it.id)
77+
.let { (intent, params) ->
78+
Choice(
79+
intent,
80+
params + (TITLE_PARAMETER to it.title)
81+
)
82+
}
83+
84+
85+
}
86+
}!!
87+
88+
89+
)
90+
91+
else -> GenericMessage(
92+
connectorType = whatsAppCloudConnectorType,
93+
texts = mapOf(GenericMessage.TEXT_PARAM to "Unsupported message type")
94+
)
95+
}
96+
}
97+
98+
6099
}

0 commit comments

Comments
 (0)