hotfix for username

This commit is contained in:
InsanusMokrassar 2019-02-18 14:35:58 +08:00
parent 3d786ee4bb
commit a1b2aed78c
3 changed files with 14 additions and 14 deletions

View File

@ -28,6 +28,10 @@ work with media groups lists
* Now most part of usernames in library have type `Username` * Now most part of usernames in library have type `Username`
* Fix `replyMarkup` in `InlineQueryResultArticle` * Fix `replyMarkup` in `InlineQueryResultArticle`
### 0.10.3
* Hotfix for username data class
## 0.9.0 ## 0.9.0
* Old extension `OkHttpClient.Builder#useWith` now deprecated and must be replaced by the same in * Old extension `OkHttpClient.Builder#useWith` now deprecated and must be replaced by the same in

View File

@ -1,4 +1,4 @@
project.version = "0.10.2" project.version = "0.10.3"
project.group = "com.github.insanusmokrassar" project.group = "com.github.insanusmokrassar"
buildscript { buildscript {

View File

@ -19,19 +19,11 @@ fun Identifier.toChatId(): ChatId = ChatId(this)
@Serializable(ChatIdentifierSerializer::class) @Serializable(ChatIdentifierSerializer::class)
data class Username( data class Username(
private val baseUsername: String val username: String
) : ChatIdentifier() { ) : ChatIdentifier() {
@Transient init {
val username: String = if (!baseUsername.startsWith("@")) { if (!username.startsWith("@")) {
"@$baseUsername" throw IllegalArgumentException("Username must starts with `@`")
} else {
baseUsername
}
override fun equals(other: Any?): Boolean {
return super.equals(other) || when (other) {
is String -> super.equals("@$other")
else -> false
} }
} }
} }
@ -44,7 +36,11 @@ internal class ChatIdentifierSerializer: KSerializer<ChatIdentifier> {
val id = input.decodeString() val id = input.decodeString()
return id.toLongOrNull() ?.let { return id.toLongOrNull() ?.let {
ChatId(it) ChatId(it)
} ?: Username(id) } ?: if (!id.startsWith("@")) {
Username("@$id")
} else {
Username(id)
}
} }
override fun serialize(output: Encoder, obj: ChatIdentifier) { override fun serialize(output: Encoder, obj: ChatIdentifier) {