1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2024-06-03 00:15:27 +00:00
tgbotapi/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebAppUser.kt

45 lines
1.1 KiB
Kotlin
Raw Permalink Normal View History

2022-04-18 11:05:28 +00:00
package dev.inmo.tgbotapi.webapps
import dev.inmo.micro_utils.language_codes.IetfLanguageCode
import dev.inmo.tgbotapi.types.*
2022-04-21 18:16:41 +00:00
import dev.inmo.tgbotapi.types.chat.CommonBot
import dev.inmo.tgbotapi.types.chat.CommonUser
2022-04-18 11:05:28 +00:00
external interface WebAppUser {
val id: Identifier
@JsName(isBotField)
val isBot: Boolean?
@JsName(firstNameField)
val firstName: String
@JsName(lastNameField)
val lastName: String?
@JsName(usernameField)
val username: String?
@JsName(languageCodeField)
val languageCode: String?
val is_premium: Boolean?
2022-04-18 11:05:28 +00:00
@JsName(photoUrlField)
val photoUrl: String?
}
val WebAppUser.isPremium
get() = is_premium == true
2022-04-18 11:05:28 +00:00
fun WebAppUser.asUser() = if (isBot == true) {
CommonBot(
UserId(id),
username ?.let(::Username) ?: error("Username is absent for bot, but must exists"),
firstName,
lastName ?: ""
)
} else {
CommonUser(
UserId(id),
firstName,
lastName ?: "",
username ?.let(::Username),
2022-08-14 19:21:10 +00:00
languageCode ?.let(::IetfLanguageCode),
isPremium = isPremium
2022-04-18 11:05:28 +00:00
)
}