diff --git a/CHANGELOG.md b/CHANGELOG.md index 58c0f5ec36..1f40d9eb3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,6 +51,9 @@ ### 0.27.10 +* `TelegramBotAPI-extensions-utils`: + * Extension `Route#includeWebhookHandlingInRouteWithFlows` was added + ### 0.27.9 * `Common` diff --git a/TelegramBotAPI-extensions-utils/README.md b/TelegramBotAPI-extensions-utils/README.md index b5b17083d1..3987598129 100644 --- a/TelegramBotAPI-extensions-utils/README.md +++ b/TelegramBotAPI-extensions-utils/README.md @@ -159,6 +159,8 @@ Besides, there are two additional opportunities: * Extension `Route#includeWebhookHandlingInRoute`, which allow you to include webhook processing inside your ktor application without creating of new one server (as it is happening in `startListenWebhooks`) + * Also, you can use `Route#includeWebhookHandlingInRouteWithFlows` to use it like `flowUpdatesFilter` fun, but apply + `FlowsUpdatesFilter` to the block * Extension `RequestsExecutor#setWebhookInfoAndStartListenWebhooks`. It is allow to set up full server (in fact, with `startListenWebhooks`), but also send `SetWebhook` request before and check that it was successful diff --git a/TelegramBotAPI-extensions-utils/src/jvmMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/updates/retrieving/Webhook.kt b/TelegramBotAPI-extensions-utils/src/jvmMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/updates/retrieving/Webhook.kt index 0434a385c9..45343c69f3 100644 --- a/TelegramBotAPI-extensions-utils/src/jvmMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/updates/retrieving/Webhook.kt +++ b/TelegramBotAPI-extensions-utils/src/jvmMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/updates/retrieving/Webhook.kt @@ -2,14 +2,14 @@ package com.github.insanusmokrassar.TelegramBotAPI.extensions.utils.updates.retr import com.github.insanusmokrassar.TelegramBotAPI.bot.RequestsExecutor import com.github.insanusmokrassar.TelegramBotAPI.extensions.utils.nonstrictJsonFormat +import com.github.insanusmokrassar.TelegramBotAPI.extensions.utils.updates.flowsUpdatesFilter import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.MultipartFile import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.base.MultipartRequestImpl import com.github.insanusmokrassar.TelegramBotAPI.requests.webhook.SetWebhook import com.github.insanusmokrassar.TelegramBotAPI.types.update.abstracts.Update import com.github.insanusmokrassar.TelegramBotAPI.types.update.abstracts.UpdateDeserializationStrategy -import com.github.insanusmokrassar.TelegramBotAPI.updateshandlers.UpdateReceiver -import com.github.insanusmokrassar.TelegramBotAPI.updateshandlers.UpdatesFilter +import com.github.insanusmokrassar.TelegramBotAPI.updateshandlers.* import com.github.insanusmokrassar.TelegramBotAPI.updateshandlers.webhook.WebhookPrivateKeyConfig import com.github.insanusmokrassar.TelegramBotAPI.utils.ExceptionHandler import com.github.insanusmokrassar.TelegramBotAPI.utils.handleSafely @@ -56,6 +56,16 @@ fun Route.includeWebhookHandlingInRoute( } } +fun Route.includeWebhookHandlingInRouteWithFlows( + scope: CoroutineScope, + exceptionsHandler: ExceptionHandler? = null, + block: FlowsUpdatesFilter.() -> Unit +) = includeWebhookHandlingInRoute( + scope, + exceptionsHandler, + flowsUpdatesFilter(block = block).asUpdateReceiver +) + /** * Setting up ktor server, set webhook info via [SetWebhook] request. *