1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2025-11-25 00:36:15 +00:00

one more fix in SetBusinessAccountUsername

This commit is contained in:
2025-05-25 19:24:18 +06:00
parent 8cd5659b7b
commit 8a351d5be0
3 changed files with 17 additions and 1 deletions

View File

@@ -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<Boolean> {
override fun method(): String = "setBusinessAccountUsername"
@@ -33,4 +34,4 @@ data class SetBusinessAccountUsername(
get() = Boolean.serializer()
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
}
}

View File

@@ -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<Username> {
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 "@".
*