mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2026-04-16 23:12:33 +00:00
fix of username encoding in KeyboardButtonRequestManagedBot
This commit is contained in:
@@ -35061,3 +35061,12 @@ public final class dev/inmo/tgbotapi/utils/serializers/UnitFromBooleanSerializer
|
||||
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lkotlin/Unit;)V
|
||||
}
|
||||
|
||||
public final class dev/inmo/tgbotapi/utils/serializers/UsernameAtLessSerializer : kotlinx/serialization/KSerializer {
|
||||
public static final field INSTANCE Ldev/inmo/tgbotapi/utils/serializers/UsernameAtLessSerializer;
|
||||
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
|
||||
public fun deserialize-BnpbnlE (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String;
|
||||
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
|
||||
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
|
||||
public fun serialize-eC7Nk8U (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.types.buttons
|
||||
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.request.RequestId
|
||||
import dev.inmo.tgbotapi.utils.serializers.UsernameAtLessSerializer
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@@ -17,6 +18,16 @@ data class KeyboardButtonRequestManagedBot(
|
||||
@SerialName(suggestedNameField)
|
||||
val suggestedName: String? = null,
|
||||
@SerialName(suggestedUsernameField)
|
||||
@Serializable(UsernameAtLessSerializer::class)
|
||||
val suggestedUsername: Username? = null
|
||||
)
|
||||
|
||||
/**
|
||||
* A type alias for the `KeyboardButtonRequestManagedBot` class representing the parameters
|
||||
* for managing a bot request in a keyboard button.
|
||||
*
|
||||
* This type encapsulates properties such as:
|
||||
* - A unique request identifier (`requestId`).
|
||||
* - Suggested name and username for the bot (`suggestedName` and `suggestedUsername`).
|
||||
*/
|
||||
typealias RequestManagedBotParameters = KeyboardButtonRequestManagedBot
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package dev.inmo.tgbotapi.utils.serializers
|
||||
|
||||
import dev.inmo.tgbotapi.types.Username
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.builtins.serializer
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import kotlinx.serialization.encoding.Decoder
|
||||
import kotlinx.serialization.encoding.Encoder
|
||||
|
||||
object UsernameAtLessSerializer : KSerializer<Username> {
|
||||
override val descriptor: SerialDescriptor
|
||||
get() = String.serializer().descriptor
|
||||
|
||||
override fun serialize(encoder: Encoder, value: Username) {
|
||||
value.withoutAt.let(encoder::encodeString)
|
||||
}
|
||||
|
||||
override fun deserialize(decoder: Decoder): Username {
|
||||
return Username.prepare(decoder.decodeString())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user