mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-02-16 19:52:01 +00:00
Merge pull request #422 from eboshare/0.35.1
Add Update#sourceUser method
This commit is contained in:
commit
9e82211473
@ -1,11 +1,11 @@
|
|||||||
package dev.inmo.tgbotapi.types.CallbackQuery
|
package dev.inmo.tgbotapi.types.CallbackQuery
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.CommonAbstracts.FromUser
|
||||||
import dev.inmo.tgbotapi.types.CallbackQueryIdentifier
|
import dev.inmo.tgbotapi.types.CallbackQueryIdentifier
|
||||||
import dev.inmo.tgbotapi.types.User
|
import dev.inmo.tgbotapi.types.User
|
||||||
|
|
||||||
sealed interface CallbackQuery {
|
sealed interface CallbackQuery : FromUser {
|
||||||
val id: CallbackQueryIdentifier
|
val id: CallbackQueryIdentifier
|
||||||
val user: User
|
|
||||||
val chatInstance: String
|
val chatInstance: String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,4 +5,4 @@ import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent
|
|||||||
|
|
||||||
data class LeftChatMember(
|
data class LeftChatMember(
|
||||||
val user: User
|
val user: User
|
||||||
): CommonEvent
|
) : CommonEvent
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package dev.inmo.tgbotapi.types.payments
|
package dev.inmo.tgbotapi.types.payments
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.CommonAbstracts.FromUser
|
||||||
import dev.inmo.tgbotapi.types.*
|
import dev.inmo.tgbotapi.types.*
|
||||||
import dev.inmo.tgbotapi.types.payments.abstracts.*
|
import dev.inmo.tgbotapi.types.payments.abstracts.*
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
@ -11,7 +12,7 @@ data class PreCheckoutQuery(
|
|||||||
@SerialName(idField)
|
@SerialName(idField)
|
||||||
val id: PreCheckoutQueryId,
|
val id: PreCheckoutQueryId,
|
||||||
@SerialName(fromField)
|
@SerialName(fromField)
|
||||||
val user: User,
|
override val user: User,
|
||||||
@SerialName(currencyField)
|
@SerialName(currencyField)
|
||||||
override val currency: Currency,
|
override val currency: Currency,
|
||||||
@SerialName(totalAmountField)
|
@SerialName(totalAmountField)
|
||||||
@ -22,4 +23,4 @@ data class PreCheckoutQuery(
|
|||||||
val shippingOptionId: ShippingOptionIdentifier? = null,
|
val shippingOptionId: ShippingOptionIdentifier? = null,
|
||||||
@SerialName(orderInfoField)
|
@SerialName(orderInfoField)
|
||||||
val orderInfo: OrderInfo? = null
|
val orderInfo: OrderInfo? = null
|
||||||
) : Currencied, Amounted
|
) : Currencied, Amounted, FromUser
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package dev.inmo.tgbotapi.types.payments
|
package dev.inmo.tgbotapi.types.payments
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.CommonAbstracts.FromUser
|
||||||
import dev.inmo.tgbotapi.types.*
|
import dev.inmo.tgbotapi.types.*
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@ -9,9 +10,9 @@ data class ShippingQuery(
|
|||||||
@SerialName(idField)
|
@SerialName(idField)
|
||||||
val id: ShippingQueryIdentifier,
|
val id: ShippingQueryIdentifier,
|
||||||
@SerialName(fromField)
|
@SerialName(fromField)
|
||||||
val user: User,
|
override val user: User,
|
||||||
@SerialName(invoicePayloadField)
|
@SerialName(invoicePayloadField)
|
||||||
val invoicePayload: InvoicePayload,
|
val invoicePayload: InvoicePayload,
|
||||||
@SerialName(shippingAddressField)
|
@SerialName(shippingAddressField)
|
||||||
val shippingAddress: ShippingAddress
|
val shippingAddress: ShippingAddress
|
||||||
)
|
) : FromUser
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package dev.inmo.tgbotapi.types.polls
|
package dev.inmo.tgbotapi.types.polls
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.CommonAbstracts.FromUser
|
||||||
import dev.inmo.tgbotapi.types.*
|
import dev.inmo.tgbotapi.types.*
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@ -9,7 +10,7 @@ data class PollAnswer(
|
|||||||
@SerialName(pollIdField)
|
@SerialName(pollIdField)
|
||||||
val pollId: PollIdentifier,
|
val pollId: PollIdentifier,
|
||||||
@SerialName(userField)
|
@SerialName(userField)
|
||||||
val user: User,
|
override val user: User,
|
||||||
@SerialName(optionIdsField)
|
@SerialName(optionIdsField)
|
||||||
val chosen: List<Int>
|
val chosen: List<Int>
|
||||||
)
|
) : FromUser
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
package dev.inmo.tgbotapi.extensions.utils
|
package dev.inmo.tgbotapi.extensions.utils
|
||||||
|
|
||||||
import dev.inmo.tgbotapi.CommonAbstracts.CommonSendInvoiceData
|
import dev.inmo.tgbotapi.CommonAbstracts.CommonSendInvoiceData
|
||||||
|
import dev.inmo.tgbotapi.CommonAbstracts.FromUser
|
||||||
import dev.inmo.tgbotapi.requests.send.payments.SendInvoice
|
import dev.inmo.tgbotapi.requests.send.payments.SendInvoice
|
||||||
import dev.inmo.tgbotapi.types.*
|
import dev.inmo.tgbotapi.types.*
|
||||||
import dev.inmo.tgbotapi.types.CallbackQuery.*
|
import dev.inmo.tgbotapi.types.CallbackQuery.*
|
||||||
@ -3096,3 +3097,12 @@ inline fun CommonSendInvoiceData.asInputInvoiceMessageContent(): InputInvoiceMes
|
|||||||
@PreviewFeature
|
@PreviewFeature
|
||||||
inline fun CommonSendInvoiceData.requireInputInvoiceMessageContent(): InputInvoiceMessageContent =
|
inline fun CommonSendInvoiceData.requireInputInvoiceMessageContent(): InputInvoiceMessageContent =
|
||||||
this as InputInvoiceMessageContent
|
this as InputInvoiceMessageContent
|
||||||
|
|
||||||
|
@PreviewFeature
|
||||||
|
inline fun <T> Any.whenFromUser(block: (FromUser) -> T) = asFromUser() ?.let(block)
|
||||||
|
|
||||||
|
@PreviewFeature
|
||||||
|
inline fun Any.asFromUser(): FromUser? = this as? FromUser
|
||||||
|
|
||||||
|
@PreviewFeature
|
||||||
|
inline fun Any.requireFromUser(): FromUser = this as FromUser
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
package dev.inmo.tgbotapi.extensions.utils.extensions
|
package dev.inmo.tgbotapi.extensions.utils.extensions
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.extensions.utils.asFromUser
|
||||||
|
import dev.inmo.tgbotapi.extensions.utils.asFromUserMessage
|
||||||
|
import dev.inmo.tgbotapi.extensions.utils.asUser
|
||||||
import dev.inmo.tgbotapi.extensions.utils.shortcuts.chat
|
import dev.inmo.tgbotapi.extensions.utils.shortcuts.chat
|
||||||
|
import dev.inmo.tgbotapi.types.User
|
||||||
import dev.inmo.tgbotapi.types.chat.abstracts.Chat
|
import dev.inmo.tgbotapi.types.chat.abstracts.Chat
|
||||||
import dev.inmo.tgbotapi.types.update.*
|
import dev.inmo.tgbotapi.types.update.*
|
||||||
import dev.inmo.tgbotapi.types.update.MediaGroupUpdates.*
|
import dev.inmo.tgbotapi.types.update.MediaGroupUpdates.*
|
||||||
@ -24,3 +28,6 @@ fun Update.sourceChat(): Chat? = when (this) {
|
|||||||
is ShippingQueryUpdate -> data.user
|
is ShippingQueryUpdate -> data.user
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreviewFeature
|
||||||
|
fun Update.sourceUser(): User? = data.asFromUser()?.user ?: sourceChat()?.asUser()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user