mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-12-23 00:57:13 +00:00
Response#parameters fixing
This commit is contained in:
parent
206b3fd3e4
commit
c4f0ed4b48
@ -26,6 +26,9 @@ must be regular text
|
||||
|
||||
* `RequestsExecutor#executeAsync(Request, CoroutineScope)` now will return `Deferred` for cases when you need result
|
||||
* `RequestsExecutor#executeUnsafe` will automatically retry request if it was unsuccessful and retries > 0
|
||||
* Add `RequestError` sealed class and described in documentation known errors
|
||||
* Add `ResponseParametersRaw` which can create error based on input parameters
|
||||
* Add `parameters` field in `Response` and remove useless fields from `Response`
|
||||
|
||||
### 0.9.3
|
||||
|
||||
|
@ -0,0 +1,18 @@
|
||||
package com.github.insanusmokrassar.TelegramBotAPI.types
|
||||
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
sealed class RequestError
|
||||
|
||||
data class RetryAfterError(
|
||||
val seconds: Long,
|
||||
val startCountingMillis: Long
|
||||
) : RequestError() {
|
||||
val canContinue = TimeUnit.SECONDS.toMillis(seconds) + startCountingMillis
|
||||
}
|
||||
|
||||
data class MigrateChatId(
|
||||
val newChatId: ChatId
|
||||
) : RequestError()
|
||||
|
||||
|
@ -15,22 +15,11 @@ data class Response<T : Any>(
|
||||
val ok: Boolean = false,
|
||||
@Optional
|
||||
val description: String? = null,
|
||||
@SerialName("migrate_to_chat_id")
|
||||
@Optional
|
||||
val migrateToChatId: Identifier? = null,
|
||||
@SerialName("retry_after")
|
||||
@Optional
|
||||
val retryAfter: Int? = null,
|
||||
@SerialName("error_code")
|
||||
@Optional
|
||||
val errorCode: Int? = null,
|
||||
@Optional
|
||||
val result: T? = null
|
||||
) {
|
||||
@Transient
|
||||
val waitUntil: DateTime? by lazy {
|
||||
retryAfter ?.let {
|
||||
DateTime.now().plus(TimeUnit.SECONDS.toMillis(it.toLong()))
|
||||
}
|
||||
}
|
||||
}
|
||||
val result: T? = null,
|
||||
@Optional
|
||||
val parameters: ResponseParametersRaw? = null
|
||||
)
|
||||
|
@ -0,0 +1,24 @@
|
||||
package com.github.insanusmokrassar.TelegramBotAPI.types
|
||||
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
data class ResponseParametersRaw(
|
||||
@SerialName("migrate_to_chat_id")
|
||||
@Optional
|
||||
private val migrateToChatId: ChatId? = null,
|
||||
@SerialName("retry_after")
|
||||
@Optional
|
||||
private val retryAfter: Long? = null
|
||||
) {
|
||||
@Transient
|
||||
private val createTime: Long = System.currentTimeMillis()
|
||||
|
||||
val error: RequestError? by lazy {
|
||||
when {
|
||||
migrateToChatId != null -> MigrateChatId(migrateToChatId);
|
||||
retryAfter != null -> RetryAfterError(retryAfter, createTime);
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user