From 01976e59b04abd4a63fc6b646744098855100a0b Mon Sep 17 00:00:00 2001 From: "r.kulbaev" Date: Mon, 21 Oct 2024 14:56:27 +0300 Subject: [PATCH] add collection and map params to setAsrProperties --- .../jaicf/channel/jaicp/reactions/TelephonyReactions.kt | 2 +- .../jaicp/reactions/handlers/SetAsrPropertiesHandler.kt | 3 ++- .../justai/jaicf/channel/jaicp/config/ProviderConfigTest.kt | 3 ++- channels/jaicp/src/test/resources/config/003/resp.json | 6 ++++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/channels/jaicp/src/main/kotlin/com/justai/jaicf/channel/jaicp/reactions/TelephonyReactions.kt b/channels/jaicp/src/main/kotlin/com/justai/jaicf/channel/jaicp/reactions/TelephonyReactions.kt index 0a217474..9bc434a8 100755 --- a/channels/jaicp/src/main/kotlin/com/justai/jaicf/channel/jaicp/reactions/TelephonyReactions.kt +++ b/channels/jaicp/src/main/kotlin/com/justai/jaicf/channel/jaicp/reactions/TelephonyReactions.kt @@ -229,7 +229,7 @@ class TelephonyReactions(private val bargeInDefaultProps: BargeInProperties) : J * } * } * ``` - * @param properties map of properties names with its assigned values (String or List). + * @param properties map of properties names with its assigned values (String/Collection/Map). * */ fun setAsrProperties(properties: Map) { asrConfig = setAsrPropertiesHandler.handle( diff --git a/channels/jaicp/src/main/kotlin/com/justai/jaicf/channel/jaicp/reactions/handlers/SetAsrPropertiesHandler.kt b/channels/jaicp/src/main/kotlin/com/justai/jaicf/channel/jaicp/reactions/handlers/SetAsrPropertiesHandler.kt index 001e726e..12159d08 100644 --- a/channels/jaicp/src/main/kotlin/com/justai/jaicf/channel/jaicp/reactions/handlers/SetAsrPropertiesHandler.kt +++ b/channels/jaicp/src/main/kotlin/com/justai/jaicf/channel/jaicp/reactions/handlers/SetAsrPropertiesHandler.kt @@ -12,8 +12,9 @@ class SetAsrPropertiesHandler( fun handle(properties: Map, asrConfig: AsrConfig): AsrConfig { val propertiesJson = JsonObject(properties.mapValues { entry -> when (val value = entry.value) { - is List<*> -> JsonArray(value.map { JsonPrimitive(it.toString()) }) + is Collection<*> -> JsonArray(value.map { JsonPrimitive(it.toString()) }) is String -> JsonPrimitive(value) + is Map<*,*> -> JsonObject(value.mapKeys { it.key.toString() }.mapValues { JsonPrimitive(it.value.toString()) }) else -> throw IllegalArgumentException("Unsupported property type: ${value::class.simpleName}") } }) diff --git a/channels/jaicp/src/test/kotlin/com/justai/jaicf/channel/jaicp/config/ProviderConfigTest.kt b/channels/jaicp/src/test/kotlin/com/justai/jaicf/channel/jaicp/config/ProviderConfigTest.kt index 394a12ab..198a3fc6 100644 --- a/channels/jaicp/src/test/kotlin/com/justai/jaicf/channel/jaicp/config/ProviderConfigTest.kt +++ b/channels/jaicp/src/test/kotlin/com/justai/jaicf/channel/jaicp/config/ProviderConfigTest.kt @@ -44,7 +44,8 @@ internal class ProviderConfigTest : JaicpBaseTest() { val scenario = echoWithAction { reactions.telephony?.setAsrProperties(mapOf( "hints.eou_timeout" to "4s", - "insight_models" to listOf("call_features") + "insight_models" to listOf("call_features"), + "time" to mapOf(("now" to "21:00")) )) } val channel = JaicpTestChannel(scenario, TelephonyChannel) diff --git a/channels/jaicp/src/test/resources/config/003/resp.json b/channels/jaicp/src/test/resources/config/003/resp.json index 0622b47f..1b703d19 100644 --- a/channels/jaicp/src/test/resources/config/003/resp.json +++ b/channels/jaicp/src/test/resources/config/003/resp.json @@ -10,12 +10,14 @@ "model": "callcenter", "asrProperties": { "hints.eou_timeout": "4s", - "insight_models": ["call_features"] + "insight_models": ["call_features"], + "time":{"now":"21:00"} } }, "asrProperties": { "hints.eou_timeout": "4s", - "insight_models": ["call_features"] + "insight_models": ["call_features"], + "time":{"now":"21:00"} } } },