From 14afb59b5fb38c5e610fcb198a7b82cecc499e7a Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 19 May 2022 20:37:52 +0600 Subject: [PATCH] StateHandlingErrorHandler in microutils --- CHANGELOG.md | 3 +++ gradle.properties | 2 +- .../behaviour_builder/BehaviourContextWithFSM.kt | 8 +++----- .../BehaviourContextWithFSMBuilder.kt | 2 ++ .../behaviour_builder/StateHandlingErrorHandler.kt | 11 ++++++++--- .../behaviour_builder/TelegramBotWithFSM.kt | 2 ++ 6 files changed, 19 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c66c312b6f..bdc972d9f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 1.1.3 +* `Behaviour Builder with FSM`: + * Typealias `StateHandlingErrorHandler` from `1.1.2` has been deprecated and should be replaced with the new one from microutils + ## 1.1.2 * `Core`: diff --git a/gradle.properties b/gradle.properties index 172d24d5e1..0331f00f0f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,7 +12,7 @@ korlibs_version=2.7.0 uuid_version=0.4.0 ktor_version=2.0.1 -micro_utils_version=0.10.4 +micro_utils_version=0.10.5 javax_activation_version=1.1.1 diff --git a/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContextWithFSM.kt b/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContextWithFSM.kt index caeb9b2b2e..92810ef175 100644 --- a/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContextWithFSM.kt +++ b/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContextWithFSM.kt @@ -2,6 +2,8 @@ package dev.inmo.tgbotapi.extensions.behaviour_builder import dev.inmo.micro_utils.coroutines.* import dev.inmo.micro_utils.fsm.common.* +import dev.inmo.micro_utils.fsm.common.utils.StateHandlingErrorHandler +import dev.inmo.micro_utils.fsm.common.utils.defaultStateHandlingErrorHandler import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.types.update.abstracts.Update import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.handlers_registrar.TriggersHolder @@ -116,11 +118,7 @@ class DefaultBehaviourContextWithFSM( private var actualHandlersList = additionalHandlers + handlers override suspend fun launchStateHandling(state: T, handlers: List>): T? { - return runCatchingSafely { - super.launchStateHandling(state, handlers) - }.getOrElse { - onStateHandlingErrorHandler(state, it) - } + return launchStateHandling(state, handlers, onStateHandlingErrorHandler) } private fun getSubContext(context: Any) = updatesFlows.getOrPut(context) { diff --git a/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContextWithFSMBuilder.kt b/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContextWithFSMBuilder.kt index eef8542281..89491b98b1 100644 --- a/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContextWithFSMBuilder.kt +++ b/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContextWithFSMBuilder.kt @@ -4,6 +4,8 @@ import dev.inmo.micro_utils.coroutines.* import dev.inmo.micro_utils.fsm.common.* import dev.inmo.micro_utils.fsm.common.managers.DefaultStatesManager import dev.inmo.micro_utils.fsm.common.managers.InMemoryDefaultStatesManagerRepo +import dev.inmo.micro_utils.fsm.common.utils.StateHandlingErrorHandler +import dev.inmo.micro_utils.fsm.common.utils.defaultStateHandlingErrorHandler import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.extensions.utils.updates.retrieving.longPolling import dev.inmo.tgbotapi.types.update.abstracts.Update diff --git a/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/StateHandlingErrorHandler.kt b/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/StateHandlingErrorHandler.kt index 26e9a06fb4..6688d81aca 100644 --- a/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/StateHandlingErrorHandler.kt +++ b/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/StateHandlingErrorHandler.kt @@ -1,5 +1,10 @@ package dev.inmo.tgbotapi.extensions.behaviour_builder -typealias StateHandlingErrorHandler = suspend (T, Throwable) -> T? -val DefaultStateHandlingErrorHandler: StateHandlingErrorHandler<*> = { _, _ -> null } -inline fun defaultStateHandlingErrorHandler(): StateHandlingErrorHandler = DefaultStateHandlingErrorHandler as StateHandlingErrorHandler +import dev.inmo.micro_utils.fsm.common.utils.StateHandlingErrorHandler + +@Deprecated("Has been added in microutils", ReplaceWith("StateHandlingErrorHandler", "dev.inmo.micro_utils.fsm.common.utils.StateHandlingErrorHandler")) +typealias StateHandlingErrorHandler = StateHandlingErrorHandler +@Deprecated("Has been added in microutils", ReplaceWith("DefaultStateHandlingErrorHandler", "dev.inmo.micro_utils.fsm.common.utils.DefaultStateHandlingErrorHandler")) +val DefaultStateHandlingErrorHandler = dev.inmo.micro_utils.fsm.common.utils.DefaultStateHandlingErrorHandler +@Deprecated("Has been added in microutils", ReplaceWith("defaultStateHandlingErrorHandler", "dev.inmo.micro_utils.fsm.common.utils.defaultStateHandlingErrorHandler")) +inline fun defaultStateHandlingErrorHandler() = dev.inmo.micro_utils.fsm.common.utils.defaultStateHandlingErrorHandler() diff --git a/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/TelegramBotWithFSM.kt b/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/TelegramBotWithFSM.kt index 9588f1e648..ca8a0a3253 100644 --- a/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/TelegramBotWithFSM.kt +++ b/tgbotapi.behaviour_builder.fsm/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/TelegramBotWithFSM.kt @@ -5,6 +5,8 @@ import dev.inmo.micro_utils.fsm.common.State import dev.inmo.micro_utils.fsm.common.StatesManager import dev.inmo.micro_utils.fsm.common.managers.DefaultStatesManager import dev.inmo.micro_utils.fsm.common.managers.InMemoryDefaultStatesManagerRepo +import dev.inmo.micro_utils.fsm.common.utils.StateHandlingErrorHandler +import dev.inmo.micro_utils.fsm.common.utils.defaultStateHandlingErrorHandler import dev.inmo.tgbotapi.bot.ktor.KtorRequestsExecutorBuilder import dev.inmo.tgbotapi.bot.ktor.telegramBot import dev.inmo.tgbotapi.bot.TelegramBot