2019-02-07 06:14:51 +00:00
|
|
|
package com.github.insanusmokrassar.TelegramBotAPI.requests.answers
|
|
|
|
|
|
|
|
import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest
|
|
|
|
import com.github.insanusmokrassar.TelegramBotAPI.types.*
|
|
|
|
import com.github.insanusmokrassar.TelegramBotAPI.types.InlineQueries.InlineQueryResult.abstracts.InlineQueryResult
|
2019-02-07 11:36:03 +00:00
|
|
|
import com.github.insanusmokrassar.TelegramBotAPI.types.InlineQueries.InlineQueryResult.serializers.InlineQueryResultSerializer
|
2019-02-07 06:19:13 +00:00
|
|
|
import com.github.insanusmokrassar.TelegramBotAPI.types.InlineQueries.abstracts.InlineQuery
|
2019-02-07 06:14:51 +00:00
|
|
|
import kotlinx.serialization.*
|
2019-02-07 11:36:03 +00:00
|
|
|
import kotlinx.serialization.internal.ArrayListSerializer
|
2019-02-07 06:14:51 +00:00
|
|
|
import kotlinx.serialization.internal.BooleanSerializer
|
|
|
|
|
2019-02-07 11:38:47 +00:00
|
|
|
@Serializable
|
2019-02-07 06:14:51 +00:00
|
|
|
data class AnswerInlineQuery(
|
|
|
|
@SerialName(inlineQueryIdField)
|
|
|
|
val inlineQueryID: InlineQueryIdentifier,
|
2019-02-07 11:36:03 +00:00
|
|
|
@Serializable(InlineQueryAnswersResultsSerializer::class)
|
2019-02-07 06:14:51 +00:00
|
|
|
@SerialName(resultsField)
|
|
|
|
val results: List<InlineQueryResult> = emptyList(),
|
|
|
|
@SerialName(cachedTimeField)
|
|
|
|
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
|
|
|
|
): SimpleRequest<Boolean> {
|
|
|
|
override fun method(): String = "answerInlineQuery"
|
2019-08-17 05:50:46 +00:00
|
|
|
override fun resultDeserializer(): KSerializer<Boolean> = BooleanSerializer
|
2019-02-07 06:14:51 +00:00
|
|
|
}
|
2019-02-07 06:19:13 +00:00
|
|
|
|
|
|
|
fun InlineQuery.createAnswer(
|
|
|
|
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
|
|
|
|
)
|
2019-02-07 11:36:03 +00:00
|
|
|
|
|
|
|
object InlineQueryAnswersResultsSerializer: KSerializer<List<InlineQueryResult>> by ArrayListSerializer(
|
|
|
|
InlineQueryResultSerializer
|
|
|
|
)
|