mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-06-14 05:45:26 +00:00
34 lines
1.4 KiB
Kotlin
34 lines
1.4 KiB
Kotlin
package dev.inmo.tgbotapi.webapps
|
|
|
|
import dev.inmo.tgbotapi.types.WebAppQueryId
|
|
|
|
/**
|
|
* @param onSendData Should return the data which must be used in [WebApp.sendData]. If returns null, data will not be sent
|
|
* @param onAnswerWebAppQuery In case if [WebAppInitData.queryId] is presented in [WebApp.initDataUnsafe], will be called
|
|
* that callback. Before and after calling of this callback will not be used any method of answering to the telegram
|
|
* system, so, you must use something like [answerWebAppQuery] by yourself to send the result
|
|
*/
|
|
inline fun sendDataOrWorkWithQueryId(
|
|
onSendData: () -> String?,
|
|
onAnswerWebAppQuery: (WebAppQueryId) -> Unit
|
|
) {
|
|
val queryId = webApp.initDataUnsafe.queryId
|
|
|
|
if (queryId == null) {
|
|
webApp.sendData(onSendData() ?: return)
|
|
} else {
|
|
onAnswerWebAppQuery(queryId)
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param onSendData Should return the data which must be used in [WebApp.sendData]. If returns null, data will not be sent
|
|
* @param onAnswerWebAppQuery In case if [WebAppInitData.queryId] is presented in [WebApp.initDataUnsafe], will be called
|
|
* that callback. Before and after calling of this callback will not be used any method of answering to the telegram
|
|
* system, so, you must use something like [answerWebAppQuery] by yourself to send the result
|
|
*/
|
|
inline fun handleResult(
|
|
onSendData: () -> String?,
|
|
onAnswerWebAppQuery: (WebAppQueryId) -> Unit
|
|
) = sendDataOrWorkWithQueryId(onSendData, onAnswerWebAppQuery)
|