@@ -23,11 +23,15 @@ import ai.tock.bot.api.model.context.Entity
2323import ai.tock.bot.api.model.message.bot.BotMessage
2424import ai.tock.bot.api.model.message.bot.Card
2525import ai.tock.bot.api.model.message.bot.Carousel
26+ import ai.tock.bot.api.model.message.bot.CustomAction
27+ import ai.tock.bot.api.model.message.bot.CustomActionType
2628import ai.tock.bot.api.model.message.bot.CustomMessage
2729import ai.tock.bot.api.model.message.bot.Debug
2830import ai.tock.bot.api.model.message.bot.Event
2931import ai.tock.bot.api.model.message.bot.EventCategory
3032import ai.tock.bot.api.model.message.bot.I18nText
33+ import ai.tock.bot.api.model.message.bot.STARTER_INTENT
34+ import ai.tock.bot.api.model.message.bot.SWITCH_STORY_ID
3135import ai.tock.bot.api.model.message.bot.Sentence
3236import ai.tock.bot.api.model.message.bot.Suggestion
3337import ai.tock.bot.api.model.message.user.UserMessage
@@ -36,6 +40,7 @@ import ai.tock.bot.connector.ConnectorMessage
3640import ai.tock.bot.connector.ConnectorType
3741import ai.tock.bot.definition.Intent
3842import ai.tock.bot.definition.IntentAware
43+ import ai.tock.bot.definition.StoryDefinition
3944import ai.tock.bot.engine.event.MetadataEvent.Companion.STREAM_RESPONSE_METADATA
4045import ai.tock.bot.engine.user.PlayerId
4146import ai.tock.shared.jackson.ConstrainedValueWrapper
@@ -64,10 +69,10 @@ class TockClientBus(
6469 override val userLocale: Locale = request.context.language
6570 override val userInterfaceType: UserInterfaceType = request.context.userInterface
6671
67- // Source connector : is the connector which initialize a conversation
72+ // Source connector: is the connector which initialize a conversation
6873 override val sourceConnectorType: ConnectorType = request.context.sourceConnectorType
6974
70- // Target connector : is the connector for which the message is produced
75+ // Target connector: is the connector for which the message is produced
7176 override val targetConnectorType: ConnectorType = request.context.targetConnectorType
7277
7378 override val contextId: String = request.context.userId.id
@@ -290,4 +295,26 @@ class TockClientBus(
290295 args,
291296 )
292297 }
298+
299+ override fun handleAndSwitchStory (
300+ storyDefinition : StoryDefinition ,
301+ starterIntent : Intent ,
302+ ) {
303+ handleAndSwitchStory(storyDefinition.id, starterIntent.wrappedIntent().name)
304+ }
305+
306+ override fun handleAndSwitchStory (
307+ storyId : String ,
308+ starterIntent : String? ,
309+ ) {
310+ addMessage(
311+ CustomAction (
312+ CustomActionType .SWITCH_STORY ,
313+ mapOf (
314+ SWITCH_STORY_ID to storyId,
315+ STARTER_INTENT to starterIntent,
316+ ),
317+ ),
318+ )
319+ }
293320}
0 commit comments