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

44 lines
2.0 KiB
Kotlin
Raw Normal View History

2018-12-26 08:07:24 +00:00
package com.github.insanusmokrassar.TelegramBotAPI.requests
import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest
2020-03-17 14:24:31 +00:00
import com.github.insanusmokrassar.TelegramBotAPI.types.*
2019-08-17 16:08:36 +00:00
import com.github.insanusmokrassar.TelegramBotAPI.types.update.abstracts.Update
import com.github.insanusmokrassar.TelegramBotAPI.types.update.abstracts.UpdateSerializerWithoutSerialization
2019-12-02 08:35:37 +00:00
import kotlinx.serialization.*
2020-03-22 07:37:01 +00:00
import kotlinx.serialization.builtins.ListSerializer
2018-12-26 08:07:24 +00:00
2020-03-22 07:37:01 +00:00
private val updatesListSerializer = ListSerializer(
UpdateSerializerWithoutSerialization
2019-12-02 08:35:37 +00:00
)
2020-05-14 07:26:56 +00:00
/**
* Request updates from Telegram Bot API system. It is important, that the result updates WILL NOT include
* [com.github.insanusmokrassar.TelegramBotAPI.types.update.MediaGroupUpdates.MediaGroupUpdate] objects due to the fact,
* that it is internal abstraction and in fact any [com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.MediaGroupMessage]
* is just a common [com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message]
*
* @see com.github.insanusmokrassar.TelegramBotAPI.extensions.utils.updates.retrieving.updateHandlerWithMediaGroupsAdaptation
* @see com.github.insanusmokrassar.TelegramBotAPI.utils.convertWithMediaGroupUpdates
*/
2018-12-26 08:07:24 +00:00
@Serializable
data class GetUpdates(
val offset: UpdateIdentifier? = null,// set `last update id + 1` to receive next part of updates
2020-03-31 05:28:48 +00:00
val limit: Int = getUpdatesLimit.last,
2020-03-17 14:24:31 +00:00
val timeout: Seconds? = null,
2019-02-27 06:01:04 +00:00
val allowed_updates: List<String>? = ALL_UPDATES_LIST
2019-08-17 16:08:36 +00:00
): SimpleRequest<List<Update>> {
2018-12-26 08:07:24 +00:00
override fun method(): String = "getUpdates"
2019-12-02 08:35:37 +00:00
override val resultDeserializer: DeserializationStrategy<List<Update>>
get() = updatesListSerializer
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
2020-03-31 05:28:48 +00:00
init {
if (limit !in getUpdatesLimit) {
error("GetUpdates request can be called only with limit in range $getUpdatesLimit (actual value is $limit)")
}
}
2018-12-26 08:07:24 +00:00
}