diff --git a/tgbotapi.core/api/tgbotapi.core.api b/tgbotapi.core/api/tgbotapi.core.api index 53a4e913b0..3103492096 100644 --- a/tgbotapi.core/api/tgbotapi.core.api +++ b/tgbotapi.core/api/tgbotapi.core.api @@ -13440,6 +13440,15 @@ public final class dev/inmo/tgbotapi/types/Username$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/inmo/tgbotapi/types/Username$Companion$WithoutAtSerializer : kotlinx/serialization/KSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/Username$Companion$WithoutAtSerializer; + 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 +} + public final class dev/inmo/tgbotapi/types/WebAppQueryId { public static final field Companion Ldev/inmo/tgbotapi/types/WebAppQueryId$Companion; public static final synthetic fun box-impl (Ljava/lang/String;)Ldev/inmo/tgbotapi/types/WebAppQueryId; diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/SetBusinessAccountUsername.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/SetBusinessAccountUsername.kt index 65c6df71fc..8140d4a331 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/SetBusinessAccountUsername.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/business_connection/SetBusinessAccountUsername.kt @@ -25,6 +25,7 @@ data class SetBusinessAccountUsername( @SerialName(businessConnectionIdField) override val businessConnectionId: BusinessConnectionId, @SerialName(usernameField) + @Serializable(Username.Companion.WithoutAtSerializer::class) val username: Username ) : BusinessRequest.Simple { override fun method(): String = "setBusinessAccountUsername" @@ -33,4 +34,4 @@ data class SetBusinessAccountUsername( get() = Boolean.serializer() override val requestSerializer: SerializationStrategy<*> get() = serializer() -} \ No newline at end of file +} diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ChatIdentifier.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ChatIdentifier.kt index 48ccdd6890..85cbc038fa 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ChatIdentifier.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ChatIdentifier.kt @@ -7,6 +7,7 @@ import dev.inmo.tgbotapi.utils.RiskFeature import dev.inmo.tgbotapi.utils.internal.ClassCastsIncluded import kotlinx.serialization.KSerializer import kotlinx.serialization.Serializable +import kotlinx.serialization.builtins.serializer import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Encoder @@ -148,6 +149,11 @@ value class Username ( } companion object { + object WithoutAtSerializer : KSerializer { + override val descriptor: SerialDescriptor = String.serializer().descriptor + override fun deserialize(decoder: Decoder): Username = Username.prepare(decoder.decodeString()) + override fun serialize(encoder: Encoder, value: Username) = encoder.encodeString(value.withoutAt) + } /** * Prepares a valid instance of [Username] by ensuring the given string starts with "@". *