fixes in SwitchInlineQueryChosenChat

This commit is contained in:
InsanusMokrassar 2023-04-21 23:53:53 +06:00
parent 33b6ff1c1e
commit 3d2df4e255
3 changed files with 42 additions and 14 deletions

View File

@ -1,19 +1,32 @@
package dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons
import dev.inmo.tgbotapi.types.*
import kotlinx.serialization.EncodeDefault
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@OptIn(ExperimentalSerializationApi::class)
@Serializable
data class SwitchInlineQueryChosenChat(
data class SwitchInlineQueryChosenChat (
@SerialName(queryField)
val query: String? = null,
@SerialName(allowUserChatsField)
val allowUsers: Boolean? = null,
@EncodeDefault
val allowUsers: Boolean = false,
@SerialName(allowBotChatsField)
val allowBots: Boolean? = null,
@EncodeDefault
val allowBots: Boolean = false,
@SerialName(allowGroupChatsField)
val allowGroups: Boolean? = null,
@EncodeDefault
val allowGroups: Boolean = false,
@SerialName(allowChannelChatsField)
val allowChannels: Boolean? = null,
)
@EncodeDefault
val allowChannels: Boolean = false,
) {
init {
require(allowUsers || allowBots || allowGroups || allowChannels) {
"Bot must allow to choose at least one of available variants in choosing of inline query recipient"
}
}
}

View File

@ -77,10 +77,10 @@ inline fun inlineQueryInCurrentChatInlineButton(
inline fun inlineQueryInCurrentChatInlineButton(
text: String,
query: String? = null,
allowUsers: Boolean? = null,
allowBots: Boolean? = null,
allowGroups: Boolean? = null,
allowChannels: Boolean? = null,
allowUsers: Boolean = false,
allowBots: Boolean = false,
allowGroups: Boolean = false,
allowChannels: Boolean = false,
) = inlineQueryInCurrentChatInlineButton(
text,
SwitchInlineQueryChosenChat(
@ -92,6 +92,17 @@ inline fun inlineQueryInCurrentChatInlineButton(
)
)
/**
* Creates and put [SwitchInlineQueryChosenChatInlineKeyboardButton]
*
* @see inlineKeyboard
* @see InlineKeyboardBuilder.row
*/
inline fun inlineQueryInAnyCurrentChatInlineButton(
text: String,
query: String? = null,
) = inlineQueryInCurrentChatInlineButton(text, query, allowUsers = true, allowBots = true, allowGroups = true, allowChannels = true)
/**
* Creates and put [SwitchInlineQueryInlineKeyboardButton]
*

View File

@ -123,10 +123,10 @@ inline fun InlineKeyboardRowBuilder.inlineQueryInChosenChatButton(
inline fun InlineKeyboardRowBuilder.inlineQueryInChosenChatButton(
text: String,
query: String? = null,
allowUsers: Boolean? = null,
allowBots: Boolean? = null,
allowGroups: Boolean? = null,
allowChannels: Boolean? = null,
allowUsers: Boolean = false,
allowBots: Boolean = false,
allowGroups: Boolean = false,
allowChannels: Boolean = false,
) = inlineQueryInChosenChatButton(
text,
SwitchInlineQueryChosenChat(
@ -137,6 +137,10 @@ inline fun InlineKeyboardRowBuilder.inlineQueryInChosenChatButton(
allowChannels = allowChannels
)
)
inline fun InlineKeyboardRowBuilder.inlineQueryInAnyChosenChatButton(
text: String,
query: String? = null,
) = inlineQueryInChosenChatButton(text, query, allowUsers = true, allowBots = true, allowGroups = true, allowChannels = true)
/**
* Creates and put [SwitchInlineQueryInlineKeyboardButton]