Skip to content

Commit 448853c

Browse files
committed
Create parallel class hierarchy for coroutine stories
1 parent 4ecea06 commit 448853c

File tree

92 files changed

+2397
-421
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+2397
-421
lines changed

bot/api/service/src/main/kotlin/BotApiHandler.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import ai.tock.bot.connector.media.MediaCard
3333
import ai.tock.bot.connector.media.MediaCarousel
3434
import ai.tock.bot.connector.media.MediaFile
3535
import ai.tock.bot.definition.StoryDefinition
36+
import ai.tock.bot.definition.StoryStep
3637
import ai.tock.bot.engine.BotBus
3738
import ai.tock.bot.engine.action.Action
3839
import ai.tock.bot.engine.action.SendAttachment.AttachmentType
@@ -134,7 +135,7 @@ internal class BotApiHandler(
134135
}
135136
// set step
136137
if (response.step != null) {
137-
step = story.definition.allSteps().find { it.name == response.step }
138+
step = story.definition.allSteps().find { it.name == response.step } as? StoryStep<*>
138139
}
139140

140141
//Handle current story and switch to ending story

bot/connector-alcmeon/src/main/kotlin/AlcmeonHandler.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package ai.tock.bot.connector.alcmeon
1717

1818
import ai.tock.bot.connector.ConnectorHandler
19+
import ai.tock.bot.definition.ConnectorSpecificHandling
1920
import ai.tock.bot.definition.ConnectorStoryHandler
2021
import ai.tock.bot.definition.StoryHandlerDefinition
2122
import kotlin.reflect.KClass
@@ -28,4 +29,4 @@ import kotlin.reflect.KClass
2829
@ConnectorHandler(connectorTypeId = ALCMEON_CONNECTOR_TYPE_ID)
2930
@Target(AnnotationTarget.CLASS)
3031
@MustBeDocumented
31-
annotation class AlcmeonHandler(val value: KClass<out ConnectorStoryHandler<*>>)
32+
annotation class AlcmeonHandler(val value: KClass<out ConnectorSpecificHandling>)

bot/connector-alexa/src/main/kotlin/AlexaHandler.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,18 @@
1717
package ai.tock.bot.connector.alexa
1818

1919
import ai.tock.bot.connector.ConnectorHandler
20+
import ai.tock.bot.definition.AsyncStoryHandling
21+
import ai.tock.bot.definition.ConnectorSpecificHandling
2022
import ai.tock.bot.definition.ConnectorStoryHandler
23+
import ai.tock.bot.definition.StoryHandlerDefinitionBase
2124
import kotlin.reflect.KClass
2225

2326
/**
2427
* To specify [ConnectorStoryHandler] for Alexa connector.
2528
* [KClass] passed as [value] of this annotation must have a primary constructor
26-
* with a single not optional [StoryHandlerDefinitionBase] argument.
29+
* with a single not optional [StoryHandlerDefinitionBase] or [AsyncStoryHandling] argument.
2730
*/
2831
@ConnectorHandler(connectorTypeId = ALEXA_CONNECTOR_TYPE_ID)
2932
@Target(AnnotationTarget.CLASS)
3033
@MustBeDocumented
31-
annotation class AlexaHandler(val value: KClass<out ConnectorStoryHandler<*>>)
34+
annotation class AlexaHandler(val value: KClass<out ConnectorSpecificHandling>)

bot/connector-businesschat/src/main/kotlin/BusinessChatHandler.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,18 @@
1717
package ai.tock.bot.connector.businesschat
1818

1919
import ai.tock.bot.connector.ConnectorHandler
20+
import ai.tock.bot.definition.AsyncStoryHandling
21+
import ai.tock.bot.definition.ConnectorSpecificHandling
2022
import ai.tock.bot.definition.ConnectorStoryHandler
21-
import kotlin.annotation.AnnotationTarget
22-
import kotlin.annotation.MustBeDocumented
23-
import kotlin.annotation.Target
23+
import ai.tock.bot.definition.StoryHandlerDefinitionBase
2424
import kotlin.reflect.KClass
2525

2626
/**
2727
* To specify [ConnectorStoryHandler] for BusinessChat connector.
2828
* [KClass] passed as [value] of this annotation must have a primary constructor
29-
* with a single not optional [StoryHandlerDefinitionBase] argument.
29+
* with a single not optional [StoryHandlerDefinitionBase] or [AsyncStoryHandling] argument.
3030
*/
3131
@ConnectorHandler(connectorTypeId = BUSINESS_CHAT_CONNECTOR_TYPE_ID)
3232
@Target(AnnotationTarget.CLASS)
3333
@MustBeDocumented
34-
annotation class BusinessChatHandler(val value: KClass<out ConnectorStoryHandler<*>>)
34+
annotation class BusinessChatHandler(val value: KClass<out ConnectorSpecificHandling>)

bot/connector-ga/src/main/kotlin/GABuilders.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@ import ai.tock.bot.connector.ga.model.response.GASimpleSelect
4141
import ai.tock.bot.connector.ga.model.response.GAStructuredResponse
4242
import ai.tock.bot.connector.ga.model.response.GAUpdatePermissionValueSpec
4343
import ai.tock.bot.definition.IntentAware
44-
import ai.tock.bot.definition.StoryHandlerDefinition
45-
import ai.tock.bot.definition.StoryStep
44+
import ai.tock.bot.definition.StoryStepDef
4645
import ai.tock.bot.engine.Bus
4746
import ai.tock.bot.engine.I18nTranslator
4847
import ai.tock.bot.engine.action.SendChoice
@@ -305,7 +304,7 @@ fun I18nTranslator.gaButton(title: CharSequence, url: String): GAButton {
305304
fun <T : Bus<T>> T.optionInfo(
306305
title: CharSequence,
307306
targetIntent: IntentAware,
308-
step: StoryStep<out StoryHandlerDefinition>? = null,
307+
step: StoryStepDef? = null,
309308
vararg parameters: Pair<String, String>
310309
): GAOptionInfo {
311310
val t = translate(title)

bot/connector-ga/src/main/kotlin/GACarouselBuilders.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ import ai.tock.bot.connector.ga.model.response.GAExpectedIntent
2424
import ai.tock.bot.connector.ga.model.response.GAImage
2525
import ai.tock.bot.definition.IntentAware
2626
import ai.tock.bot.definition.Parameters
27-
import ai.tock.bot.definition.StoryHandlerDefinition
2827
import ai.tock.bot.definition.StoryStep
28+
import ai.tock.bot.definition.StoryStepDef
2929
import ai.tock.bot.engine.Bus
3030
import ai.tock.bot.engine.I18nTranslator
3131
import ai.tock.translator.raw
@@ -163,7 +163,7 @@ fun <T : Bus<T>> T.carouselItem(
163163
*/
164164
fun <T : Bus<T>> T.carouselItem(
165165
targetIntent: IntentAware,
166-
step: StoryStep<out StoryHandlerDefinition>?,
166+
step: StoryStepDef?,
167167
title: CharSequence,
168168
description: CharSequence? = null,
169169
image: GAImage? = null,
@@ -176,7 +176,7 @@ fun <T : Bus<T>> T.carouselItem(
176176
*/
177177
fun <T : Bus<T>> T.carouselItem(
178178
targetIntent: IntentAware,
179-
step: StoryStep<out StoryHandlerDefinition>?,
179+
step: StoryStepDef?,
180180
title: CharSequence,
181181
description: CharSequence? = null,
182182
image: GAImage? = null,

bot/connector-ga/src/main/kotlin/GAHandler.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package ai.tock.bot.connector.ga
1818

1919
import ai.tock.bot.connector.ConnectorHandler
20+
import ai.tock.bot.definition.ConnectorSpecificHandling
2021
import ai.tock.bot.definition.ConnectorStoryHandler
2122
import kotlin.reflect.KClass
2223

@@ -28,4 +29,4 @@ import kotlin.reflect.KClass
2829
@ConnectorHandler(connectorTypeId = GA_CONNECTOR_TYPE_ID)
2930
@Target(AnnotationTarget.CLASS)
3031
@MustBeDocumented
31-
annotation class GAHandler(val value: KClass<out ConnectorStoryHandler<*>>)
32+
annotation class GAHandler(val value: KClass<out ConnectorSpecificHandling>)

bot/connector-ga/src/main/kotlin/GAListBuilders.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ import ai.tock.bot.connector.ga.model.response.GARichResponse
2525
import ai.tock.bot.connector.ga.model.response.GASuggestion
2626
import ai.tock.bot.definition.IntentAware
2727
import ai.tock.bot.definition.Parameters
28-
import ai.tock.bot.definition.StoryHandlerDefinition
2928
import ai.tock.bot.definition.StoryStep
29+
import ai.tock.bot.definition.StoryStepDef
3030
import ai.tock.bot.engine.Bus
3131
import ai.tock.bot.engine.I18nTranslator
3232
import ai.tock.translator.raw
@@ -169,7 +169,7 @@ fun <T : Bus<T>> T.listItem(
169169
fun <T : Bus<T>> T.listItem(
170170
title: CharSequence,
171171
targetIntent: IntentAware,
172-
step: StoryStep<out StoryHandlerDefinition>?,
172+
step: StoryStepDef?,
173173
parameters: Parameters
174174
): GAListItem = listItem(title, targetIntent, step, null, null, parameters)
175175

@@ -179,7 +179,7 @@ fun <T : Bus<T>> T.listItem(
179179
fun <T : Bus<T>> T.listItem(
180180
title: CharSequence,
181181
targetIntent: IntentAware,
182-
step: StoryStep<out StoryHandlerDefinition>?,
182+
step: StoryStepDef?,
183183
vararg parameters: Pair<String, String>
184184
): GAListItem = listItem<T>(title, targetIntent, step, null, null, *parameters)
185185

@@ -189,7 +189,7 @@ fun <T : Bus<T>> T.listItem(
189189
fun <T : Bus<T>> T.listItem(
190190
title: CharSequence,
191191
targetIntent: IntentAware,
192-
step: StoryStep<out StoryHandlerDefinition>?,
192+
step: StoryStepDef?,
193193
description: CharSequence? = null,
194194
imageUrl: String? = null,
195195
parameters: Parameters
@@ -201,7 +201,7 @@ fun <T : Bus<T>> T.listItem(
201201
fun <T : Bus<T>> T.listItem(
202202
title: CharSequence,
203203
targetIntent: IntentAware,
204-
step: StoryStep<out StoryHandlerDefinition>?,
204+
step: StoryStepDef?,
205205
description: CharSequence? = null,
206206
imageUrl: String? = null,
207207
vararg parameters: Pair<String, String>

bot/connector-ga/src/main/kotlin/GASelectBuilders.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ import ai.tock.bot.connector.ga.model.response.GASelectItem
2222
import ai.tock.bot.connector.ga.model.response.GASimpleSelect
2323
import ai.tock.bot.definition.IntentAware
2424
import ai.tock.bot.definition.Parameters
25-
import ai.tock.bot.definition.StoryHandlerDefinition
2625
import ai.tock.bot.definition.StoryStep
26+
import ai.tock.bot.definition.StoryStepDef
2727
import ai.tock.bot.engine.Bus
2828
import ai.tock.bot.engine.I18nTranslator
2929

@@ -64,7 +64,7 @@ fun <T : Bus<T>> T.selectItem(
6464
fun <T : Bus<T>> T.selectItem(
6565
title: CharSequence,
6666
targetIntent: IntentAware,
67-
step: StoryStep<out StoryHandlerDefinition>,
67+
step: StoryStepDef,
6868
optionTitle: CharSequence? = null,
6969
parameters: Parameters
7070
): GASelectItem = selectItem(title, targetIntent, step, optionTitle, *parameters.toArray())
@@ -75,7 +75,7 @@ fun <T : Bus<T>> T.selectItem(
7575
fun <T : Bus<T>> T.selectItem(
7676
title: CharSequence,
7777
targetIntent: IntentAware,
78-
step: StoryStep<out StoryHandlerDefinition>? = null,
78+
step: StoryStepDef? = null,
7979
optionTitle: CharSequence? = null,
8080
vararg parameters: Pair<String, String>
8181
): GASelectItem {

bot/connector-google-chat/src/main/kotlin/GoogleChatHandler.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package ai.tock.bot.connector.googlechat
1717

1818
import ai.tock.bot.connector.ConnectorHandler
1919
import ai.tock.bot.connector.googlechat.builder.GOOGLE_CHAT_CONNECTOR_TYPE_ID
20+
import ai.tock.bot.definition.ConnectorSpecificHandling
2021
import ai.tock.bot.definition.ConnectorStoryHandler
2122
import ai.tock.bot.definition.StoryHandlerDefinition
2223
import kotlin.reflect.KClass
@@ -29,4 +30,4 @@ import kotlin.reflect.KClass
2930
@ConnectorHandler(connectorTypeId = GOOGLE_CHAT_CONNECTOR_TYPE_ID)
3031
@Target(AnnotationTarget.CLASS)
3132
@MustBeDocumented
32-
annotation class GoogleChatHandler(val value: KClass<out ConnectorStoryHandler<*>>)
33+
annotation class GoogleChatHandler(val value: KClass<out ConnectorSpecificHandling>)

0 commit comments

Comments
 (0)