diff --git a/CHANGELOG.md b/CHANGELOG.md index d58598e5f3..e4fcf056a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## 0.19.0 ImplicitReflection removing +* Total rework of serialization for requests. Now all `SimpleRequest` children have: + * `requestSerializer` - field, which must provide serializer of current type + * `resultDeserializer` - field, which must provide opportunity to deserializer result. Previously it was a function + + ## 0.18.0 Raws cleaning * Made internal and not available outside of library: diff --git a/build.gradle b/build.gradle index 4d7a3d2bdc..c29d199dcb 100644 --- a/build.gradle +++ b/build.gradle @@ -42,9 +42,3 @@ dependencies { testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version" } - -compileKotlin { - kotlinOptions { - freeCompilerArgs = [ disableImplicitReflectionSerializerAnnotation ] - } -} diff --git a/gradle.properties b/gradle.properties index 069d652777..7a43a40eb0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,5 +9,3 @@ gradle_bintray_plugin_version=1.8.4 project_public_name=Telegram Bot API project_public_description=Library for Object-Oriented and type-safe work with Telegram Bot API - -disableImplicitReflectionSerializerAnnotation=-Xexperimental=kotlinx.serialization.ImplicitReflectionSerializer diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/KtorRequestsExecutor.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/KtorRequestsExecutor.kt index 01b7cf81b2..a0a3d4efe6 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/KtorRequestsExecutor.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/KtorRequestsExecutor.kt @@ -77,7 +77,7 @@ class KtorRequestsExecutor( val responseObject = jsonFormatter.parse(Response.serializer(), content) (responseObject.result ?.let { - jsonFormatter.fromJson(request.resultDeserializer(), it) + jsonFormatter.fromJson(request.resultDeserializer, it) } ?: responseObject.parameters ?.let { val error = it.error if (error is RetryAfterError) { diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt index 94a72f0f01..0335b62a51 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt @@ -12,12 +12,11 @@ class SimpleRequestCallFactory : AbstractRequestCallFactory() { baseUrl: String, request: Request ): Any? = (request as? SimpleRequest) ?.let { _ -> - val content = request.toJsonWithoutNulls(SimpleRequestSerializer).toString() + val content = request.json().toString() TextContent( content, ContentType.Application.Json ) } - } \ No newline at end of file diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/DeleteMessage.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/DeleteMessage.kt index f024b0c2b4..dadfa80790 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/DeleteMessage.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/DeleteMessage.kt @@ -15,5 +15,8 @@ data class DeleteMessage( ) : SimpleRequest, MessageAction { override fun method(): String = "deleteMessage" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/ForwardMessage.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/ForwardMessage.kt index 4b8f0cc6bc..2f58255c54 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/ForwardMessage.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/ForwardMessage.kt @@ -24,5 +24,8 @@ data class ForwardMessage( override fun method(): String = "forwardMessage" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/GetMe.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/GetMe.kt index dc67a84e05..143b9b4bd0 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/GetMe.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/GetMe.kt @@ -2,11 +2,13 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest import com.github.insanusmokrassar.TelegramBotAPI.types.User -import kotlinx.serialization.KSerializer -import kotlinx.serialization.Serializable +import kotlinx.serialization.* @Serializable class GetMe : SimpleRequest { override fun method(): String = "getMe" - override fun resultDeserializer(): KSerializer = User.serializer() + override val resultDeserializer: DeserializationStrategy + get() = User.serializer() + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } \ No newline at end of file diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/GetUpdates.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/GetUpdates.kt index b381791d2d..3cce646457 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/GetUpdates.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/GetUpdates.kt @@ -5,10 +5,13 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.ALL_UPDATES_LIST import com.github.insanusmokrassar.TelegramBotAPI.types.UpdateIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.update.abstracts.Update import com.github.insanusmokrassar.TelegramBotAPI.types.update.abstracts.UpdateSerializerWithoutDeserialization -import kotlinx.serialization.KSerializer -import kotlinx.serialization.Serializable +import kotlinx.serialization.* import kotlinx.serialization.internal.ArrayListSerializer +private val updatesListSerializer = ArrayListSerializer( + UpdateSerializerWithoutDeserialization +) + @Serializable data class GetUpdates( val offset: UpdateIdentifier? = null,// set `last update id + 1` to receive next part of updates @@ -18,7 +21,9 @@ data class GetUpdates( ): SimpleRequest> { override fun method(): String = "getUpdates" - override fun resultDeserializer(): KSerializer> = ArrayListSerializer( - UpdateSerializerWithoutDeserialization - ) + override val resultDeserializer: DeserializationStrategy> + get() = updatesListSerializer + + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/StopPoll.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/StopPoll.kt index 09002cb049..9b8b83166b 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/StopPoll.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/StopPoll.kt @@ -18,5 +18,8 @@ data class StopPoll( override val replyMarkup: InlineKeyboardMarkup? = null ) : MessageAction, SimpleRequest, ReplyMarkup { override fun method(): String = "stopPoll" - override fun resultDeserializer(): KSerializer = Poll.serializer() + override val resultDeserializer: DeserializationStrategy + get() = Poll.serializer() + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/abstracts/Request.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/abstracts/Request.kt index d93d77ba0d..9c0a0911d7 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/abstracts/Request.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/abstracts/Request.kt @@ -1,13 +1,8 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts -import com.github.insanusmokrassar.TelegramBotAPI.utils.toJsonWithoutNulls import kotlinx.serialization.* -import kotlinx.serialization.json.JsonObject -@Serializable(RequestSerializer::class) interface Request { fun method(): String - fun resultDeserializer(): DeserializationStrategy - fun json(): JsonObject = toJsonWithoutNulls(RequestSerializer) + val resultDeserializer: DeserializationStrategy } -object RequestSerializer : KSerializer> by ContextSerializer(Request::class) diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/abstracts/SimpleRequest.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/abstracts/SimpleRequest.kt index d25f5a575f..523b1c069d 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/abstracts/SimpleRequest.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/abstracts/SimpleRequest.kt @@ -1,8 +1,12 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts -import kotlinx.serialization.* +import com.github.insanusmokrassar.TelegramBotAPI.utils.toJsonWithoutNulls +import kotlinx.serialization.SerializationStrategy +import kotlinx.serialization.json.JsonObject -@Serializable(SimpleRequestSerializer::class) -interface SimpleRequest : Request +interface SimpleRequest : Request { + val requestSerializer: SerializationStrategy<*> +} -object SimpleRequestSerializer : KSerializer> by ContextSerializer(SimpleRequest::class) +@Suppress("UNCHECKED_CAST") +inline fun > K.json(): JsonObject = toJsonWithoutNulls(requestSerializer as SerializationStrategy) diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/AnswerCallbackQuery.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/AnswerCallbackQuery.kt index 3f911c8e0e..5fee21cc13 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/AnswerCallbackQuery.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/AnswerCallbackQuery.kt @@ -20,7 +20,10 @@ data class AnswerCallbackQuery( val cachedTimeSeconds: Int? = null ) : SimpleRequest { override fun method(): String = "answerCallbackQuery" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } fun CallbackQuery.createAnswer( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/AnswerInlineQuery.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/AnswerInlineQuery.kt index 7c47d11bb6..21fba40d00 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/AnswerInlineQuery.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/AnswerInlineQuery.kt @@ -28,7 +28,10 @@ data class AnswerInlineQuery( val switchPmParameter: String? = null ): SimpleRequest { override fun method(): String = "answerInlineQuery" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } fun InlineQuery.createAnswer( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/AnswerPreCheckoutQuery.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/AnswerPreCheckoutQuery.kt index 4eb4a896da..ff7d297270 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/AnswerPreCheckoutQuery.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/AnswerPreCheckoutQuery.kt @@ -3,8 +3,7 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.answers.payments import com.github.insanusmokrassar.TelegramBotAPI.requests.answers.payments.abstracts.AnswerPreCheckoutQuery import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.payments.PreCheckoutQuery -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* @Serializable data class AnswerPreCheckoutQueryOk( @@ -13,6 +12,8 @@ data class AnswerPreCheckoutQueryOk( ) : AnswerPreCheckoutQuery { @SerialName(okField) override val isOk: Boolean = true + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } @@ -25,6 +26,8 @@ data class AnswerPreCheckoutQueryError( ) : AnswerPreCheckoutQuery { @SerialName(okField) override val isOk: Boolean = false + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } fun PreCheckoutQuery.createAnswerOk(): AnswerPreCheckoutQueryOk = AnswerPreCheckoutQueryOk( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/AnswerShippingQuery.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/AnswerShippingQuery.kt index 1aa62665f8..2439e5f41d 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/AnswerShippingQuery.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/AnswerShippingQuery.kt @@ -17,6 +17,8 @@ data class AnswerShippingQueryOk( ) : AnswerShippingQuery { @SerialName(okField) override val isOk: Boolean = true + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } object ShippingOptionsSerializer : KSerializer> by ArrayListSerializer( @@ -32,6 +34,8 @@ data class AnswerShippingQueryError( ) : AnswerShippingQuery { @SerialName(okField) override val isOk: Boolean = false + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } fun ShippingQuery.createAnswerOk( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/abstracts/AnswerPreCheckoutQuery.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/abstracts/AnswerPreCheckoutQuery.kt index d461c9a564..93f01ac4dd 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/abstracts/AnswerPreCheckoutQuery.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/abstracts/AnswerPreCheckoutQuery.kt @@ -3,11 +3,13 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.answers.payments.abs import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest import com.github.insanusmokrassar.TelegramBotAPI.types.PreCheckoutQueryId import kotlinx.serialization.KSerializer +import kotlinx.serialization.internal.BooleanSerializer import kotlinx.serialization.serializer interface AnswerPreCheckoutQuery : SimpleRequest { override fun method(): String = "answerPreCheckoutQuery" - override fun resultDeserializer(): KSerializer = Boolean.serializer() + override val resultDeserializer: KSerializer + get() = BooleanSerializer val preCheckoutQueryId: PreCheckoutQueryId val isOk: Boolean diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/abstracts/AnswerShippingQuery.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/abstracts/AnswerShippingQuery.kt index 1f7ee5a80e..2655fa3115 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/abstracts/AnswerShippingQuery.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/abstracts/AnswerShippingQuery.kt @@ -2,12 +2,13 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.answers.payments.abs import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest import com.github.insanusmokrassar.TelegramBotAPI.types.ShippingQueryIdentifier -import kotlinx.serialization.KSerializer -import kotlinx.serialization.serializer +import kotlinx.serialization.* +import kotlinx.serialization.internal.BooleanSerializer interface AnswerShippingQuery : SimpleRequest { override fun method(): String = "answerShippingQuery" - override fun resultDeserializer(): KSerializer = Boolean.serializer() + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer val shippingQueryId: ShippingQueryIdentifier val isOk: Boolean diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/ExportChatInviteLink.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/ExportChatInviteLink.kt index ecfd8f91b0..6316c1d007 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/ExportChatInviteLink.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/ExportChatInviteLink.kt @@ -13,5 +13,8 @@ data class ExportChatInviteLink( override val chatId: ChatIdentifier ): ChatRequest, SimpleRequest { override fun method(): String = "exportChatInviteLink" - override fun resultDeserializer(): KSerializer = StringSerializer + override val resultDeserializer: DeserializationStrategy + get() = StringSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/LeaveChat.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/LeaveChat.kt index fdadd6fc8e..15dd8af79d 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/LeaveChat.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/LeaveChat.kt @@ -13,5 +13,8 @@ data class LeaveChat( override val chatId: ChatIdentifier ): ChatRequest, SimpleRequest { override fun method(): String = "leaveChat" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChat.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChat.kt index 0f462ec9cf..fb0decdbad 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChat.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChat.kt @@ -14,5 +14,8 @@ data class GetChat( override val chatId: ChatIdentifier ): ChatRequest, SimpleRequest { override fun method(): String = "getChat" - override fun resultDeserializer(): KSerializer = ExtendedChatSerializer + override val resultDeserializer: DeserializationStrategy + get() = ExtendedChatSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChatAdministrators.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChatAdministrators.kt index 609ce7bf2c..efc8548b7c 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChatAdministrators.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChatAdministrators.kt @@ -9,13 +9,18 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.chatIdField import kotlinx.serialization.* import kotlinx.serialization.internal.ArrayListSerializer +private val chatMembersListSerializer = ArrayListSerializer( + ChatMemberSerializerWithoutDeserialization +) + @Serializable data class GetChatAdministrators( @SerialName(chatIdField) override val chatId: ChatIdentifier ): ChatRequest, SimpleRequest> { override fun method(): String = "getChatAdministrators" - override fun resultDeserializer(): KSerializer> = ArrayListSerializer( - ChatMemberSerializerWithoutDeserialization - ) + override val resultDeserializer: DeserializationStrategy> + get() = chatMembersListSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChatMembersCount.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChatMembersCount.kt index 303fd2ca91..a1313a1bf5 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChatMembersCount.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChatMembersCount.kt @@ -13,5 +13,8 @@ data class GetChatMembersCount( override val chatId: ChatIdentifier ): ChatRequest, SimpleRequest { override fun method(): String = "getChatMembersCount" - override fun resultDeserializer(): KSerializer = IntSerializer + override val resultDeserializer: DeserializationStrategy + get() = IntSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/GetChatMember.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/GetChatMember.kt index 6a5b63d3ef..7ec1b18bab 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/GetChatMember.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/GetChatMember.kt @@ -14,5 +14,8 @@ data class GetChatMember( override val userId: UserId ) : ChatMemberRequest { override fun method(): String = "getChatMember" - override fun resultDeserializer(): DeserializationStrategy = ChatMemberDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = ChatMemberDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/KickChatMember.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/KickChatMember.kt index fcbd6df4f1..ba28fcbf94 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/KickChatMember.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/KickChatMember.kt @@ -16,5 +16,8 @@ data class KickChatMember( override val untilDate: TelegramDate? = null ) : ChatMemberRequest, UntilDate { override fun method(): String = "kickChatMember" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/PromoteChatMember.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/PromoteChatMember.kt index d741403d14..b3289f28d5 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/PromoteChatMember.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/PromoteChatMember.kt @@ -32,5 +32,8 @@ data class PromoteChatMember( private val canPromoteMembers: Boolean? = null ) : ChatMemberRequest, UntilDate { override fun method(): String = "promoteChatMember" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/RestrictChatMember.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/RestrictChatMember.kt index 71eac80c5b..95e2c1a375 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/RestrictChatMember.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/RestrictChatMember.kt @@ -19,5 +19,8 @@ data class RestrictChatMember( val permissions: ChatPermissions ) : ChatMemberRequest, UntilDate { override fun method(): String = "restrictChatMember" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/UnbanChatMember.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/UnbanChatMember.kt index ad2280bcff..d1853fc12e 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/UnbanChatMember.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/members/UnbanChatMember.kt @@ -13,5 +13,8 @@ data class UnbanChatMember( override val userId: UserId ) : ChatMemberRequest { override fun method(): String = "unbanChatMember" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/DeleteChatPhoto.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/DeleteChatPhoto.kt index 54216a5dc3..13727ff832 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/DeleteChatPhoto.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/DeleteChatPhoto.kt @@ -13,5 +13,8 @@ data class DeleteChatPhoto( override val chatId: ChatIdentifier ): ChatRequest, SimpleRequest { override fun method(): String = "deleteChatPhoto" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/PinChatMessage.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/PinChatMessage.kt index 7800bcaf85..faf9efde1d 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/PinChatMessage.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/PinChatMessage.kt @@ -16,5 +16,8 @@ data class PinChatMessage ( override val disableNotification: Boolean = false ): ChatRequest, SimpleRequest, MessageAction, DisableNotification { override fun method(): String = "pinChatMessage" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatDescription.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatDescription.kt index a3d2c29ef7..da66ac385d 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatDescription.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatDescription.kt @@ -20,5 +20,8 @@ data class SetChatDescription ( } override fun method(): String = "setChatDescription" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatPermissions.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatPermissions.kt index 7d7e156325..54af9d3010 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatPermissions.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatPermissions.kt @@ -15,5 +15,8 @@ data class SetChatPermissions ( val permissions: ChatPermissions ): ChatRequest, SimpleRequest { override fun method(): String = "setChatPermissions" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatPhoto.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatPhoto.kt index fd55982656..abc42992d3 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatPhoto.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatPhoto.kt @@ -16,7 +16,8 @@ data class SetChatPhoto ( val photo: MultipartFile = throw IllegalArgumentException("Unfortunately, this type of objects can't be parsed automatically") ): ChatRequest, MultipartRequest { override fun method(): String = "setChatPhoto" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer override val mediaMap: Map = mapOf(photoField to photo) override val paramsJson: JsonObject = toJson(serializer()) } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatTitle.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatTitle.kt index 61e3140015..3b56fda15c 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatTitle.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/SetChatTitle.kt @@ -20,5 +20,8 @@ data class SetChatTitle ( } override fun method(): String = "setChatTitle" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/UnpinChatMessage.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/UnpinChatMessage.kt index 8e3cae8855..b755a6a96d 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/UnpinChatMessage.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/modify/UnpinChatMessage.kt @@ -13,5 +13,8 @@ data class UnpinChatMessage( override val chatId: ChatIdentifier ): ChatRequest, SimpleRequest { override fun method(): String = "unpinChatMessage" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/stickers/DeleteChatStickerSet.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/stickers/DeleteChatStickerSet.kt index 85eab03063..e8563e75bc 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/stickers/DeleteChatStickerSet.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/stickers/DeleteChatStickerSet.kt @@ -13,5 +13,8 @@ data class DeleteChatStickerSet( override val chatId: ChatIdentifier ): ChatRequest, SimpleRequest { override fun method(): String = "deleteChatStickerSet" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/stickers/SetChatStickerSet.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/stickers/SetChatStickerSet.kt index e3d8b057c0..0aa4f73729 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/stickers/SetChatStickerSet.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/stickers/SetChatStickerSet.kt @@ -14,5 +14,8 @@ data class SetChatStickerSet( val stickerSetName: StickerSetName ): ChatRequest, SimpleRequest { override fun method(): String = "setChatStickerSet" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/common/CommonMultipartFileRequest.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/common/CommonMultipartFileRequest.kt index be59fe4131..783eb02400 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/common/CommonMultipartFileRequest.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/common/CommonMultipartFileRequest.kt @@ -4,7 +4,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.* import kotlinx.serialization.json.JsonObject data class CommonMultipartFileRequest( - val data: Request, + val data: SimpleRequest, override val mediaMap: Map ) : MultipartRequest, Request by data { override val paramsJson: JsonObject = data.json() diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/EditChatMessageLiveLocation.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/EditChatMessageLiveLocation.kt index 5bea2e5d66..69ae5d756a 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/EditChatMessageLiveLocation.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/EditChatMessageLiveLocation.kt @@ -21,5 +21,8 @@ data class EditChatMessageLiveLocation( override val replyMarkup: InlineKeyboardMarkup? = null ) : EditChatMessage, EditReplyMessage, EditLocationMessage { override fun method(): String = "editMessageLiveLocation" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/EditInlineMessageLiveLocation.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/EditInlineMessageLiveLocation.kt index 215a67c1a4..7f44bc51c1 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/EditInlineMessageLiveLocation.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/EditInlineMessageLiveLocation.kt @@ -1,10 +1,10 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.edit.LiveLocation import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.* +import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.caption.EditInlineMessageCaption import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* @Serializable data class EditInlineMessageLiveLocation( @@ -18,4 +18,6 @@ data class EditInlineMessageLiveLocation( override val replyMarkup: InlineKeyboardMarkup? = null ) : EditInlineMessage, EditReplyMessage, EditLocationMessage { override fun method(): String = "editMessageLiveLocation" + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/StopChatMessageLiveLocation.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/StopChatMessageLiveLocation.kt index bf4a1beae7..242606ca5f 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/StopChatMessageLiveLocation.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/StopChatMessageLiveLocation.kt @@ -18,5 +18,8 @@ data class StopChatMessageLiveLocation( override val replyMarkup: InlineKeyboardMarkup? = null ) : EditChatMessage, EditReplyMessage { override fun method(): String = "stopMessageLiveLocation" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/StopInlineMessageLiveLocation.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/StopInlineMessageLiveLocation.kt index 3a3b80e6ff..dbe0667ab1 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/StopInlineMessageLiveLocation.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/StopInlineMessageLiveLocation.kt @@ -4,8 +4,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.EditIn import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.EditReplyMessage import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* @Serializable data class StopInlineMessageLiveLocation( @@ -15,4 +14,6 @@ data class StopInlineMessageLiveLocation( override val replyMarkup: InlineKeyboardMarkup? = null ) : EditInlineMessage, EditReplyMessage { override fun method(): String = "stopMessageLiveLocation" + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/ReplyMarkup/EditChatMessageReplyMarkup.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/ReplyMarkup/EditChatMessageReplyMarkup.kt index d0b1a16f0e..5518ca379f 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/ReplyMarkup/EditChatMessageReplyMarkup.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/ReplyMarkup/EditChatMessageReplyMarkup.kt @@ -21,5 +21,8 @@ data class EditChatMessageReplyMarkup( ) : EditChatMessage, EditReplyMessage { override fun method(): String = editMessageReplyMarkupMethod - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/ReplyMarkup/EditInlineMessageReplyMarkup.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/ReplyMarkup/EditInlineMessageReplyMarkup.kt index a5a0f17dd7..c6980715c2 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/ReplyMarkup/EditInlineMessageReplyMarkup.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/ReplyMarkup/EditInlineMessageReplyMarkup.kt @@ -1,11 +1,11 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.edit.ReplyMarkup +import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.LiveLocation.EditInlineMessageLiveLocation import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.EditInlineMessage import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.EditReplyMessage import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* @Serializable data class EditInlineMessageReplyMarkup( @@ -15,4 +15,6 @@ data class EditInlineMessageReplyMarkup( override val replyMarkup: InlineKeyboardMarkup? = null ) : EditInlineMessage, EditReplyMessage { override fun method(): String = editMessageReplyMarkupMethod + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/abstracts/EditInlineMessage.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/abstracts/EditInlineMessage.kt index 1e59a089c4..c070c4c8c5 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/abstracts/EditInlineMessage.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/abstracts/EditInlineMessage.kt @@ -2,10 +2,11 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest import com.github.insanusmokrassar.TelegramBotAPI.types.InlineMessageIdentifier -import kotlinx.serialization.KSerializer +import kotlinx.serialization.* import kotlinx.serialization.internal.BooleanSerializer interface EditInlineMessage : SimpleRequest { val inlineMessageId: InlineMessageIdentifier - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer } \ No newline at end of file diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/caption/EditChatMessageCaption.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/caption/EditChatMessageCaption.kt index 554585d623..37c7234708 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/caption/EditChatMessageCaption.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/caption/EditChatMessageCaption.kt @@ -26,5 +26,8 @@ data class EditChatMessageCaption( ) : EditChatMessage, EditTextChatMessage, EditReplyMessage { override fun method(): String = editMessageCaptionMethod - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/caption/EditInlineMessageCaption.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/caption/EditInlineMessageCaption.kt index 6ae7306f0f..b918ae79fd 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/caption/EditInlineMessageCaption.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/caption/EditInlineMessageCaption.kt @@ -5,8 +5,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.parseModeField import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* @Serializable data class EditInlineMessageCaption( @@ -20,4 +19,6 @@ data class EditInlineMessageCaption( override val replyMarkup: InlineKeyboardMarkup? = null ) : EditInlineMessage, EditTextChatMessage, EditReplyMessage { override fun method(): String = editMessageCaptionMethod + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/media/EditChatMessageMedia.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/media/EditChatMessageMedia.kt index a10ca2edd2..f92222f1a7 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/media/EditChatMessageMedia.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/media/EditChatMessageMedia.kt @@ -30,5 +30,8 @@ data class EditChatMessageMedia( } override fun method(): String = editMessageMediaMethod - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/media/EditInlineMessageMedia.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/media/EditInlineMessageMedia.kt index 27920dc26e..4b5b4ec450 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/media/EditInlineMessageMedia.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/media/EditInlineMessageMedia.kt @@ -1,12 +1,12 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.edit.media import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.MultipartFile +import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.LiveLocation.EditInlineMessageLiveLocation import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMedia import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* @Serializable data class EditInlineMessageMedia( @@ -23,6 +23,8 @@ data class EditInlineMessageMedia( throw IllegalArgumentException("For editing of media messages you MUST use file id (according to documentation)") } } + override val requestSerializer: SerializationStrategy<*> + get() = serializer() override fun method(): String = editMessageMediaMethod } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/text/EditChatMessageText.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/text/EditChatMessageText.kt index 4f431d8f61..ab44007a91 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/text/EditChatMessageText.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/text/EditChatMessageText.kt @@ -28,5 +28,8 @@ data class EditChatMessageText( ) : EditChatMessage, EditTextChatMessage, EditReplyMessage, EditDisableWebPagePreviewMessage { override fun method(): String = editMessageTextMethod - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/text/EditInlineMessageText.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/text/EditInlineMessageText.kt index d04f4bcdcf..9dda750d6e 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/text/EditInlineMessageText.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/text/EditInlineMessageText.kt @@ -1,13 +1,13 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.edit.text +import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.LiveLocation.EditInlineMessageLiveLocation import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.media.editMessageMediaMethod import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.parseModeField import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* @Serializable data class EditInlineMessageText( @@ -23,4 +23,6 @@ data class EditInlineMessageText( override val replyMarkup: InlineKeyboardMarkup? = null ) : EditInlineMessage, EditTextChatMessage, EditReplyMessage, EditDisableWebPagePreviewMessage { override fun method(): String = editMessageMediaMethod + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/GetGameHighScoresByChat.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/GetGameHighScoresByChat.kt index 29fd440756..d1cd6effd5 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/GetGameHighScoresByChat.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/GetGameHighScoresByChat.kt @@ -3,8 +3,7 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.games import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.types.MessageAction import com.github.insanusmokrassar.TelegramBotAPI.requests.games.abstracts.GetGameHighScores import com.github.insanusmokrassar.TelegramBotAPI.types.* -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* @Serializable data class GetGameHighScoresByChat ( @@ -14,4 +13,7 @@ data class GetGameHighScoresByChat ( override val chatId: ChatId, @SerialName(messageIdField) override val messageId: MessageIdentifier -) : GetGameHighScores, MessageAction +) : GetGameHighScores, MessageAction { + override val requestSerializer: SerializationStrategy<*> + get() = serializer() +} diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/GetGameHighScoresByInlineMessageId.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/GetGameHighScoresByInlineMessageId.kt index e6b0d1f94e..7e35cbce06 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/GetGameHighScoresByInlineMessageId.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/GetGameHighScoresByInlineMessageId.kt @@ -3,8 +3,7 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.games import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.types.InlineMessageAction import com.github.insanusmokrassar.TelegramBotAPI.requests.games.abstracts.GetGameHighScores import com.github.insanusmokrassar.TelegramBotAPI.types.* -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* @Serializable data class GetGameHighScoresByInlineMessageId ( @@ -12,4 +11,7 @@ data class GetGameHighScoresByInlineMessageId ( override val userId: UserId, @SerialName(inlineMessageIdField) override val inlineMessageId: InlineMessageIdentifier -) : GetGameHighScores, InlineMessageAction +) : GetGameHighScores, InlineMessageAction { + override val requestSerializer: SerializationStrategy<*> + get() = serializer() +} diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/SetGameScoreByChatId.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/SetGameScoreByChatId.kt index 5f4ede6eb3..7cb00e4dc8 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/SetGameScoreByChatId.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/SetGameScoreByChatId.kt @@ -3,8 +3,7 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.games import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.types.MessageAction import com.github.insanusmokrassar.TelegramBotAPI.requests.games.abstracts.SetGameScore import com.github.insanusmokrassar.TelegramBotAPI.types.* -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* @Serializable data class SetGameScoreByChatId ( @@ -20,4 +19,7 @@ data class SetGameScoreByChatId ( override val force: Boolean = false, @SerialName(disableEditMessageField) override val disableEditMessage: Boolean = false -) : SetGameScore, MessageAction +) : SetGameScore, MessageAction { + override val requestSerializer: SerializationStrategy<*> + get() = serializer() +} diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/SetGameScoreByInlineMessageId.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/SetGameScoreByInlineMessageId.kt index ebc1d15041..23deee5967 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/SetGameScoreByInlineMessageId.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/SetGameScoreByInlineMessageId.kt @@ -3,8 +3,7 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.games import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.types.InlineMessageAction import com.github.insanusmokrassar.TelegramBotAPI.requests.games.abstracts.SetGameScore import com.github.insanusmokrassar.TelegramBotAPI.types.* -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* @Serializable data class SetGameScoreByInlineMessageId ( @@ -18,4 +17,7 @@ data class SetGameScoreByInlineMessageId ( override val force: Boolean = false, @SerialName(disableEditMessageField) override val disableEditMessage: Boolean = false -) : SetGameScore, InlineMessageAction +) : SetGameScore, InlineMessageAction { + override val requestSerializer: SerializationStrategy<*> + get() = serializer() +} diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/abstracts/GetGameHighScores.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/abstracts/GetGameHighScores.kt index 9e329e38c6..216cdfb9e9 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/abstracts/GetGameHighScores.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/abstracts/GetGameHighScores.kt @@ -3,6 +3,7 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.games.abstracts import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest import com.github.insanusmokrassar.TelegramBotAPI.types.UserId import com.github.insanusmokrassar.TelegramBotAPI.types.games.GameHighScore +import kotlinx.serialization.DeserializationStrategy import kotlinx.serialization.KSerializer import kotlinx.serialization.internal.ArrayListSerializer @@ -10,7 +11,8 @@ interface GetGameHighScores : SimpleRequest> { val userId: UserId override fun method(): String = "getGameHighScores" - override fun resultDeserializer(): KSerializer> = GameHighScoresSerializer + override val resultDeserializer: DeserializationStrategy> + get() = GameHighScoresSerializer } object GameHighScoresSerializer : KSerializer> by ArrayListSerializer(GameHighScore.serializer()) diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/abstracts/SetGameScore.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/abstracts/SetGameScore.kt index f1f42144ef..6351e3dcc5 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/abstracts/SetGameScore.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/abstracts/SetGameScore.kt @@ -2,8 +2,7 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.games.abstracts import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest import com.github.insanusmokrassar.TelegramBotAPI.types.UserId -import kotlinx.serialization.KSerializer -import kotlinx.serialization.serializer +import kotlinx.serialization.* interface SetGameScore : SimpleRequest { val userId: UserId @@ -12,5 +11,6 @@ interface SetGameScore : SimpleRequest { val disableEditMessage: Boolean override fun method(): String = "setGameScore" - override fun resultDeserializer(): KSerializer = Boolean.serializer() + override val resultDeserializer: DeserializationStrategy + get() = Boolean.serializer() } \ No newline at end of file diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/get/GetFile.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/get/GetFile.kt index 9ffdc26483..54e5e00a1f 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/get/GetFile.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/get/GetFile.kt @@ -12,5 +12,8 @@ data class GetFile( val fileId: FileId ): SimpleRequest { override fun method(): String = "getFile" - override fun resultDeserializer(): KSerializer = PathedFile.serializer() + override val resultDeserializer: DeserializationStrategy + get() = PathedFile.serializer() + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/get/GetStickerSet.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/get/GetStickerSet.kt index 844808349f..41fc2f031a 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/get/GetStickerSet.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/get/GetStickerSet.kt @@ -11,5 +11,8 @@ data class GetStickerSet( val name: String ): SimpleRequest { override fun method(): String = "getStickerSet" - override fun resultDeserializer(): KSerializer = StickerSet.serializer() + override val resultDeserializer: DeserializationStrategy + get() = StickerSet.serializer() + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/get/GetUserProfilePhotos.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/get/GetUserProfilePhotos.kt index 85dd7eadc8..f9270a7571 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/get/GetUserProfilePhotos.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/get/GetUserProfilePhotos.kt @@ -23,5 +23,8 @@ data class GetUserProfilePhotos( } override fun method(): String = "getUserProfilePhotos" - override fun resultDeserializer(): KSerializer = UserProfilePhotos.serializer() + override val resultDeserializer: DeserializationStrategy + get() = UserProfilePhotos.serializer() + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendAction.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendAction.kt index 5559a5245b..4e94bd44fd 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendAction.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendAction.kt @@ -17,5 +17,8 @@ data class SendAction( val action: BotAction ): SendChatMessageRequest { override fun method(): String = "sendChatAction" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendContact.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendContact.kt index 6234bb6ef8..62ee0e681c 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendContact.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendContact.kt @@ -44,7 +44,10 @@ data class SendContact( ) override fun method(): String = "sendContact" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } fun Contact.toRequest( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendLocation.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendLocation.kt index a3009dab9e..156ce59a44 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendLocation.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendLocation.kt @@ -30,5 +30,8 @@ data class SendLocation( { override fun method(): String = "sendLocation" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendMessage.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendMessage.kt index 72a16fe10b..22e9e330ba 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendMessage.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendMessage.kt @@ -38,5 +38,8 @@ data class SendMessage( } override fun method(): String = "sendMessage" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendPoll.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendPoll.kt index 943c76b60c..1ca31873a7 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendPoll.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendPoll.kt @@ -40,5 +40,8 @@ data class SendPoll( } override fun method(): String = "sendPoll" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } \ No newline at end of file diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendVenue.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendVenue.kt index ce714015a4..52d95ec5ca 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendVenue.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendVenue.kt @@ -51,7 +51,10 @@ data class SendVenue( ) override fun method(): String = "sendVenue" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } fun Venue.toRequest( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/games/SendGame.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/games/SendGame.kt index 617ade799a..a0cc92bb95 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/games/SendGame.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/games/SendGame.kt @@ -23,5 +23,8 @@ data class SendGame ( ) : SendMessageRequest, ReplyMarkup { override fun method(): String = "sendGame" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } \ No newline at end of file diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAnimation.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAnimation.kt index cfa34557e0..37abff9569 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAnimation.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAnimation.kt @@ -95,7 +95,10 @@ data class SendAnimationData internal constructor( } override fun method(): String = "sendAnimation" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } data class SendAnimationFiles internal constructor( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAudio.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAudio.kt index c4d808e778..9d4dd65b42 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAudio.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAudio.kt @@ -97,7 +97,10 @@ data class SendAudioData internal constructor( } override fun method(): String = "sendAudio" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } data class SendAudioFiles internal constructor( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendDocument.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendDocument.kt index 72143c7735..8c64aca7fc 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendDocument.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendDocument.kt @@ -81,7 +81,10 @@ data class SendDocumentData internal constructor( } override fun method(): String = "sendDocument" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } data class SendDocumentFiles internal constructor( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendMediaGroup.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendMediaGroup.kt index d493a7af1e..5aa46e5bf6 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendMediaGroup.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendMediaGroup.kt @@ -53,7 +53,7 @@ fun SendMediaGroup( } } -private val serializer = ArrayListSerializer(TelegramBotAPIMessageDeserializeOnlySerializer) +private val messagesListSerializer = ArrayListSerializer(TelegramBotAPIMessageDeserializeOnlySerializer) @Serializable data class SendMediaGroupData internal constructor( @@ -64,9 +64,7 @@ data class SendMediaGroupData internal constructor( override val disableNotification: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null -) : DataRequest>, - SendMessageRequest> -{ +) : DataRequest>, SendMessageRequest> { @SerialName(mediaField) private val convertedMedia: String get() = jsonArray { @@ -77,7 +75,10 @@ data class SendMediaGroupData internal constructor( override fun method(): String = "sendMediaGroup" - override fun resultDeserializer(): DeserializationStrategy> = serializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() + override val resultDeserializer: DeserializationStrategy> + get() = messagesListSerializer } data class SendMediaGroupFiles internal constructor( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendPhoto.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendPhoto.kt index 15403b4730..4c09829cba 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendPhoto.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendPhoto.kt @@ -67,7 +67,10 @@ data class SendPhotoData internal constructor( } override fun method(): String = "sendPhoto" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } data class SendPhotoFiles internal constructor( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendSticker.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendSticker.kt index b1add1b9cc..64be1d6e0b 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendSticker.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendSticker.kt @@ -44,7 +44,10 @@ data class SendStickerByFileId internal constructor( override val replyMarkup: KeyboardMarkup? = null ) : SendMessageRequest, ReplyingMarkupSendMessageRequest { override fun method(): String = "sendSticker" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } data class SendStickerByFile internal constructor( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideo.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideo.kt index 23e803c1af..a024f9c990 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideo.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideo.kt @@ -99,7 +99,10 @@ data class SendVideoData internal constructor( } override fun method(): String = "sendVideo" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } data class SendVideoFiles internal constructor( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideoNote.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideoNote.kt index 92d8dbcc05..827e8b253d 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideoNote.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideoNote.kt @@ -82,7 +82,6 @@ data class SendVideoNoteData internal constructor( DuratedSendMessageRequest, SizedSendMessageRequest { - @Transient override val height: Int? get() = width @@ -95,7 +94,10 @@ data class SendVideoNoteData internal constructor( } override fun method(): String = "sendVideoNote" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } data class SendVideoNoteFiles internal constructor( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVoice.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVoice.kt index ebc1425dda..c96b84f197 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVoice.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVoice.kt @@ -86,7 +86,10 @@ data class SendVoiceData internal constructor( } override fun method(): String = "sendVoice" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } data class SendVoiceFiles internal constructor( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/DataRequest.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/DataRequest.kt index 4685ccbac9..2cacb49d7d 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/DataRequest.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/DataRequest.kt @@ -3,7 +3,4 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.base import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest import kotlinx.serialization.* -@Serializable(DataRequestSerializer::class) interface DataRequest : SimpleRequest - -object DataRequestSerializer : KSerializer> by ContextSerializer(DataRequest::class) \ No newline at end of file diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/MultipartRequestImpl.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/MultipartRequestImpl.kt index 42e9c7f2a3..fe0e318011 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/MultipartRequestImpl.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/MultipartRequestImpl.kt @@ -1,8 +1,7 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.base -import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.MultipartFile -import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.MultipartRequest -import kotlinx.serialization.DeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.* +import kotlinx.serialization.* import kotlinx.serialization.json.JsonObject /** @@ -13,7 +12,8 @@ class MultipartRequestImpl, F: Files, R: Any>( val files: F ) : MultipartRequest { override fun method(): String = data.method() - override fun resultDeserializer(): DeserializationStrategy = data.resultDeserializer() + override val resultDeserializer: DeserializationStrategy + get() = data.resultDeserializer override val paramsJson: JsonObject = data.json() override val mediaMap: Map = files } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/payments/SendInvoice.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/payments/SendInvoice.kt index d41499b200..7ee480035d 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/payments/SendInvoice.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/payments/SendInvoice.kt @@ -65,7 +65,10 @@ data class SendInvoice( ReplyMarkup, SendMessageRequest { override fun method(): String = "sendInvoice" - override fun resultDeserializer(): DeserializationStrategy = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = TelegramBotAPIMessageDeserializationStrategy + override val requestSerializer: SerializationStrategy<*> + get() = serializer() @SerialName(photoUrlField) var photoUrl: String? = null diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/AddStickerToSet.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/AddStickerToSet.kt index 9f79ddd49e..113ad5966e 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/AddStickerToSet.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/AddStickerToSet.kt @@ -5,8 +5,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.common.CommonMultipar import com.github.insanusmokrassar.TelegramBotAPI.requests.stickers.abstracts.StickerSetAction import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.stickers.MaskPosition -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* fun AddStickerToSet( userId: UserId, @@ -44,5 +43,8 @@ data class AddStickerToSet internal constructor( } } + override val requestSerializer: SerializationStrategy<*> + get() = serializer() + override fun method(): String = "addStickerToSet" } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/CreateNewStickerSet.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/CreateNewStickerSet.kt index abb645dd8b..b02b967fc3 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/CreateNewStickerSet.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/CreateNewStickerSet.kt @@ -5,8 +5,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.common.CommonMultipar import com.github.insanusmokrassar.TelegramBotAPI.requests.stickers.abstracts.StickerSetAction import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.stickers.MaskPosition -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable +import kotlinx.serialization.* fun CreateNewStickerSet( userId: UserId, @@ -47,5 +46,8 @@ data class CreateNewStickerSet internal constructor( } } + override val requestSerializer: SerializationStrategy<*> + get() = serializer() + override fun method(): String = "createNewStickerSet" } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/DeleteStickerFromSet.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/DeleteStickerFromSet.kt index 00048ba963..91d8cf2ac3 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/DeleteStickerFromSet.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/DeleteStickerFromSet.kt @@ -12,5 +12,8 @@ data class DeleteStickerFromSet( val sticker: FileId ) : SimpleRequest { override fun method(): String = "deleteStickerFromSet" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/SetStickerPositionInSet.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/SetStickerPositionInSet.kt index f8ef9bd32e..cf2fcd7150 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/SetStickerPositionInSet.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/SetStickerPositionInSet.kt @@ -21,5 +21,8 @@ data class SetStickerPositionInSet( } override fun method(): String = "setStickerPositionInSet" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/UploadStickerFile.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/UploadStickerFile.kt index 7bdc656e03..967f3682c6 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/UploadStickerFile.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/UploadStickerFile.kt @@ -24,5 +24,6 @@ data class UploadStickerFile( override val mediaMap: Map = mapOf(pngStickerField to sticker) @Transient override val paramsJson: JsonObject = toJsonWithoutNulls(serializer()) - override fun resultDeserializer(): KSerializer = File.serializer() + override val resultDeserializer: DeserializationStrategy + get() = File.serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/abstracts/StickerSetAction.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/abstracts/StickerSetAction.kt index 0f10097952..d46e316e71 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/abstracts/StickerSetAction.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/stickers/abstracts/StickerSetAction.kt @@ -12,5 +12,6 @@ interface StickerSetAction : SimpleRequest { val emojis: String // must be more than one val maskPosition: MaskPosition? - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: KSerializer + get() = BooleanSerializer } \ No newline at end of file diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/webhook/DeleteWebhook.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/webhook/DeleteWebhook.kt index d0e3b8a9b7..b061cfb830 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/webhook/DeleteWebhook.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/webhook/DeleteWebhook.kt @@ -1,13 +1,15 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.webhook import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest -import kotlinx.serialization.KSerializer -import kotlinx.serialization.Serializable +import kotlinx.serialization.* import kotlinx.serialization.internal.BooleanSerializer @Serializable class DeleteWebhook : SimpleRequest { override fun method(): String = "deleteWebhook" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/webhook/GetWebhookInfo.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/webhook/GetWebhookInfo.kt index d3f82ab3d6..607a5aa7fd 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/webhook/GetWebhookInfo.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/webhook/GetWebhookInfo.kt @@ -2,12 +2,14 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.webhook import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest import com.github.insanusmokrassar.TelegramBotAPI.types.WebhookInfo -import kotlinx.serialization.KSerializer -import kotlinx.serialization.Serializable +import kotlinx.serialization.* @Serializable class GetWebhookInfo : SimpleRequest { override fun method(): String = "getWebhookInfo" - override fun resultDeserializer(): KSerializer = WebhookInfo.serializer() + override val resultDeserializer: DeserializationStrategy + get() = WebhookInfo.serializer() + override val requestSerializer: SerializationStrategy<*> + get() = serializer() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/webhook/SetWebhook.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/webhook/SetWebhook.kt index 120384c211..7a066d096c 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/webhook/SetWebhook.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/webhook/SetWebhook.kt @@ -51,7 +51,10 @@ data class SetWebhook internal constructor( val allowedUpdates: List? = null ) : DataRequest { override fun method(): String = "setWebhook" - override fun resultDeserializer(): KSerializer = BooleanSerializer + override val resultDeserializer: DeserializationStrategy + get() = BooleanSerializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() init { maxAllowedConnections ?.let { diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/CallbackQuery/RawCallbackQuery.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/CallbackQuery/RawCallbackQuery.kt index 415e8046e6..a2ac709d63 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/CallbackQuery/RawCallbackQuery.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/CallbackQuery/RawCallbackQuery.kt @@ -21,7 +21,6 @@ internal data class RawCallbackQuery( @SerialName("game_short_name") val gameShortName: String? = null ) { - @Transient val asCallbackQuery: CallbackQuery by lazy { when { message != null && data != null -> MessageDataCallbackQuery(id, from, chatInstance, message, data) diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/RawChatMember.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/RawChatMember.kt index ea95fca153..5687d30c6e 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/RawChatMember.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/RawChatMember.kt @@ -40,7 +40,6 @@ internal data class RawChatMember( @SerialName(canAddWebPagePreviewsField) private val canAddWebPagePreviews: Boolean = false ) { - @Transient val asChatMember: ChatMember by lazy { when (status) { "creator" -> CreatorChatMember(user) diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/ChosenInlineResult/RawChosenInlineResult.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/ChosenInlineResult/RawChosenInlineResult.kt index 54807fb3a4..1273d90842 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/ChosenInlineResult/RawChosenInlineResult.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/ChosenInlineResult/RawChosenInlineResult.kt @@ -17,7 +17,6 @@ internal data class RawChosenInlineResult( @SerialName(inlineMessageIdField) val inlineMessageId: InlineMessageIdentifier? = null ) { - @Transient val asChosenInlineResult: ChosenInlineResult by lazy { location ?.let { LocationChosenInlineResult(resultId, user, location, inlineMessageId, query) diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/query/RawInlineQuery.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/query/RawInlineQuery.kt index b8e711248e..333a808e08 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/query/RawInlineQuery.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/query/RawInlineQuery.kt @@ -16,7 +16,6 @@ internal data class RawInlineQuery( @SerialName(locationField) val location: Location? = null ) { - @Transient val asInlineQuery by lazy { location ?.let { LocationInlineQuery(id, from, query, offset, location) diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ResponseParametersRaw.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ResponseParametersRaw.kt index f455d06535..666034e4da 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ResponseParametersRaw.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ResponseParametersRaw.kt @@ -11,7 +11,6 @@ data class ResponseParametersRaw( ) { @Transient private val createTime: Long = System.currentTimeMillis() - @Transient val error: RequestError? by lazy { when { migrateToChatId != null -> MigrateChatId(migrateToChatId); diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/User.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/User.kt index bb9dfd5e27..734dc61b5d 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/User.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/User.kt @@ -17,7 +17,6 @@ data class User( @SerialName(languageCodeField) private val languageCode: String? = null ) { - @Transient val userLocale: Locale? by lazy { languageCode ?.let { Locale.forLanguageTag(it) diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/RawMessage.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/RawMessage.kt index 30e00375bf..14edb09d08 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/RawMessage.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/RawMessage.kt @@ -83,7 +83,6 @@ internal data class RawMessage( private val reply_markup: InlineKeyboardMarkup? = null ) { - @Transient private val content: MessageContent? by lazy { val adaptedCaptionEntities = caption ?.let { caption_entities ?.map { @@ -157,7 +156,6 @@ internal data class RawMessage( } } - @Transient private val chatEvent: ChatEvent? by lazy { when { new_chat_members != null -> NewChatMembers(new_chat_members.toList()) @@ -177,7 +175,6 @@ internal data class RawMessage( } } - @Transient private val paymentInfo: PaymentInfo? by lazy { when { invoice != null -> InvoiceOfPayment(invoice) @@ -187,8 +184,6 @@ internal data class RawMessage( } - - @Transient val asMessage: Message by lazy { chatEvent ?.let { chatEvent -> diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/update/RawUpdate.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/update/RawUpdate.kt index c4add0da5a..233cf57251 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/update/RawUpdate.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/update/RawUpdate.kt @@ -32,7 +32,6 @@ internal data class RawUpdate constructor( private val pre_checkout_query: PreCheckoutQuery? = null, private val poll: Poll? = null ) { - @Transient val asUpdate: Update by lazy { when { edited_message != null -> EditMessageUpdate(updateId, edited_message) diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt index 9273319a5c..35e674808a 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt @@ -1,11 +1,11 @@ package com.github.insanusmokrassar.TelegramBotAPI.utils -import kotlinx.serialization.KSerializer +import kotlinx.serialization.SerializationStrategy import kotlinx.serialization.json.* -inline fun T.toJsonWithoutNulls(serializer: KSerializer): JsonObject = toJson(serializer).withoutNulls() +inline fun T.toJsonWithoutNulls(serializer: SerializationStrategy): JsonObject = toJson(serializer).withoutNulls() -inline fun T.toJson(serializer: KSerializer): JsonObject = Json.nonstrict.toJson( +inline fun T.toJson(serializer: SerializationStrategy): JsonObject = Json.nonstrict.toJson( serializer, this ).jsonObject