1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2024-06-03 00:15:27 +00:00
tgbotapi/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/answers/AnswerInlineQuery.kt

59 lines
2.0 KiB
Kotlin
Raw Normal View History

2020-10-04 11:06:30 +00:00
package dev.inmo.tgbotapi.requests.answers
2019-02-07 06:14:51 +00:00
2020-10-04 11:06:30 +00:00
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.InlineQueryResult
import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.serializers.InlineQueryResultSerializer
2021-06-03 17:34:11 +00:00
import dev.inmo.tgbotapi.types.InlineQueries.query.InlineQuery
2021-05-29 09:34:14 +00:00
import dev.inmo.tgbotapi.utils.RiskFeature
2019-02-07 06:14:51 +00:00
import kotlinx.serialization.*
2020-03-22 07:37:01 +00:00
import kotlinx.serialization.builtins.ListSerializer
import kotlinx.serialization.builtins.serializer
2019-02-07 06:14:51 +00:00
@Serializable
2019-02-07 06:14:51 +00:00
data class AnswerInlineQuery(
@SerialName(inlineQueryIdField)
val inlineQueryID: InlineQueryIdentifier,
@Serializable(InlineQueryAnswersResultsSerializer::class)
2019-02-07 06:14:51 +00:00
@SerialName(resultsField)
val results: List<InlineQueryResult> = emptyList(),
2021-01-30 13:35:53 +00:00
@SerialName(cacheTimeField)
2019-02-07 06:14:51 +00:00
val cachedTime: Int? = null,
@SerialName(isPersonalField)
val isPersonal: Boolean? = null,
@SerialName(nextOffsetField)
val nextOffset: String? = null,
@SerialName(switchPmTextField)
val switchPmText: String? = null,
@SerialName(switchPmParameterField)
val switchPmParameter: String? = null
2021-05-29 09:34:14 +00:00
) : SimpleRequest<Boolean> {
2019-02-07 06:14:51 +00:00
override fun method(): String = "answerInlineQuery"
2019-12-02 08:35:37 +00:00
override val resultDeserializer: DeserializationStrategy<Boolean>
2020-03-22 07:37:01 +00:00
get() = Boolean.serializer()
2019-12-02 08:35:37 +00:00
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
2019-02-07 06:14:51 +00:00
}
2019-02-07 06:19:13 +00:00
2021-06-03 17:34:11 +00:00
fun InlineQuery.createAnswer(
2019-02-07 06:19:13 +00:00
results: List<InlineQueryResult> = emptyList(),
cachedTime: Int? = null,
isPersonal: Boolean? = null,
nextOffset: String? = null,
switchPmText: String? = null,
switchPmParameter: String? = null
) = AnswerInlineQuery(
id,
results,
cachedTime,
isPersonal,
nextOffset,
switchPmText,
switchPmParameter
)
2021-05-29 09:34:14 +00:00
@RiskFeature
object InlineQueryAnswersResultsSerializer : KSerializer<List<InlineQueryResult>> by ListSerializer(
InlineQueryResultSerializer
)