mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-09-15 13:19:30 +00:00
SuccessfulPaymentEvent
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
package dev.inmo.tgbotapi.types.message.ChatEvents
|
||||
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonGroupEvent
|
||||
|
||||
class DeleteChatPhoto: CommonEvent
|
||||
class DeleteChatPhoto: CommonGroupEvent
|
||||
|
@@ -1,8 +1,8 @@
|
||||
package dev.inmo.tgbotapi.types.message.ChatEvents
|
||||
|
||||
import dev.inmo.tgbotapi.types.User
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonGroupEvent
|
||||
|
||||
data class LeftChatMember(
|
||||
val user: User
|
||||
) : CommonEvent
|
||||
) : CommonGroupEvent
|
||||
|
@@ -1,8 +1,8 @@
|
||||
package dev.inmo.tgbotapi.types.message.ChatEvents
|
||||
|
||||
import dev.inmo.tgbotapi.types.files.Photo
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonGroupEvent
|
||||
|
||||
data class NewChatPhoto(
|
||||
val photo: Photo
|
||||
): CommonEvent
|
||||
): CommonGroupEvent
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package dev.inmo.tgbotapi.types.message.ChatEvents
|
||||
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonGroupEvent
|
||||
|
||||
data class NewChatTitle(
|
||||
val title: String
|
||||
): CommonEvent
|
||||
): CommonGroupEvent
|
||||
|
@@ -2,7 +2,7 @@ package dev.inmo.tgbotapi.types.message.ChatEvents
|
||||
|
||||
import dev.inmo.tgbotapi.types.Meters
|
||||
import dev.inmo.tgbotapi.types.User
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonGroupEvent
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
/**
|
||||
@@ -14,4 +14,4 @@ data class ProximityAlertTriggered(
|
||||
val traveler: User,
|
||||
val watcher: User,
|
||||
val distance: Meters
|
||||
) : CommonEvent
|
||||
) : CommonGroupEvent
|
||||
|
@@ -1,3 +1,3 @@
|
||||
package dev.inmo.tgbotapi.types.message.ChatEvents.abstracts
|
||||
|
||||
interface CommonEvent : ChannelEvent, GroupEvent, SupergroupEvent
|
||||
interface CommonEvent : CommonGroupEvent, PrivateEvent
|
||||
|
@@ -0,0 +1,3 @@
|
||||
package dev.inmo.tgbotapi.types.message.ChatEvents.abstracts
|
||||
|
||||
interface CommonGroupEvent : ChannelEvent, GroupEvent, SupergroupEvent
|
@@ -0,0 +1,3 @@
|
||||
package dev.inmo.tgbotapi.types.message.ChatEvents.abstracts
|
||||
|
||||
interface PrivateEvent : ChatEvent
|
@@ -1,3 +1,3 @@
|
||||
package dev.inmo.tgbotapi.types.message.ChatEvents.abstracts
|
||||
|
||||
interface VoiceChatEvent : CommonEvent
|
||||
interface VoiceChatEvent : CommonGroupEvent
|
||||
|
@@ -0,0 +1,15 @@
|
||||
package dev.inmo.tgbotapi.types.message
|
||||
|
||||
import com.soywiz.klock.DateTime
|
||||
import dev.inmo.tgbotapi.types.MessageIdentifier
|
||||
import dev.inmo.tgbotapi.types.chat.abstracts.ChannelChat
|
||||
import dev.inmo.tgbotapi.types.chat.abstracts.PrivateChat
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.PrivateEvent
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage
|
||||
|
||||
data class PrivateEventMessage<T : PrivateEvent>(
|
||||
override val messageId: MessageIdentifier,
|
||||
override val chat: PrivateChat,
|
||||
override val chatEvent: T,
|
||||
override val date: DateTime
|
||||
) : ChatEventMessage<T>
|
@@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.types.chat.abstracts.Chat
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.PrivateContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.abstracts.MessageContent
|
||||
import dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentInfo
|
||||
import dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent
|
||||
|
||||
data class PrivateContentMessageImpl<T: MessageContent>(
|
||||
override val messageId: MessageIdentifier,
|
||||
@@ -20,5 +20,7 @@ data class PrivateContentMessageImpl<T: MessageContent>(
|
||||
override val replyTo: Message?,
|
||||
override val replyMarkup: InlineKeyboardMarkup?,
|
||||
override val senderBot: CommonBot?,
|
||||
val paymentInfo: SuccessfulPaymentInfo?
|
||||
) : PrivateContentMessage<T>
|
||||
) : PrivateContentMessage<T> {
|
||||
@Deprecated("This value will always be null. You may get SuccessfulPayment as one of ChatEvents")
|
||||
val paymentInfo: SuccessfulPaymentEvent? = null
|
||||
}
|
||||
|
@@ -17,8 +17,7 @@ import dev.inmo.tgbotapi.types.message.abstracts.UnknownMessageType
|
||||
import dev.inmo.tgbotapi.types.message.content.*
|
||||
import dev.inmo.tgbotapi.types.message.content.abstracts.MessageContent
|
||||
import dev.inmo.tgbotapi.types.message.content.media.*
|
||||
import dev.inmo.tgbotapi.types.message.payments.InvoiceContent
|
||||
import dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentInfo
|
||||
import dev.inmo.tgbotapi.types.message.payments.*
|
||||
import dev.inmo.tgbotapi.types.passport.PassportData
|
||||
import dev.inmo.tgbotapi.types.payments.Invoice
|
||||
import dev.inmo.tgbotapi.types.payments.SuccessfulPayment
|
||||
@@ -197,18 +196,11 @@ internal data class RawMessage(
|
||||
channel_chat_created -> ChannelChatCreated()
|
||||
pinned_message != null -> PinnedMessage(pinned_message.asMessage)
|
||||
proximity_alert_triggered != null -> proximity_alert_triggered
|
||||
successful_payment != null -> SuccessfulPaymentEvent(successful_payment)
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
private val paymentInfo: SuccessfulPaymentInfo? by lazy {
|
||||
when {
|
||||
successful_payment != null -> SuccessfulPaymentInfo(successful_payment)
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
val asMessage: Message by lazy {
|
||||
try {
|
||||
chatEvent?.let { chatEvent ->
|
||||
@@ -233,6 +225,12 @@ internal data class RawMessage(
|
||||
chatEvent as? ChannelEvent ?: throwWrongChatEvent(ChannelEvent::class, chatEvent),
|
||||
date.asDate
|
||||
)
|
||||
is PrivateChat -> PrivateEventMessage(
|
||||
messageId,
|
||||
chat,
|
||||
chatEvent as? PrivateEvent ?: throwWrongChatEvent(PrivateEvent::class, chatEvent),
|
||||
date.asDate
|
||||
)
|
||||
else -> error("Expected one of the public chats, but was $chat (in extracting of chat event message)")
|
||||
}
|
||||
} ?: content?.let { content ->
|
||||
@@ -335,8 +333,7 @@ internal data class RawMessage(
|
||||
forwarded,
|
||||
reply_to_message?.asMessage,
|
||||
reply_markup,
|
||||
via_bot,
|
||||
paymentInfo
|
||||
via_bot
|
||||
)
|
||||
else -> error("Unknown type of chat: $chat")
|
||||
}
|
||||
@@ -359,7 +356,7 @@ internal data class RawMessage(
|
||||
}
|
||||
}
|
||||
|
||||
private fun throwWrongChatEvent(expected: KClass<*>, but: ChatEvent): CommonEvent {
|
||||
private fun throwWrongChatEvent(expected: KClass<*>, but: ChatEvent): Nothing {
|
||||
error("Wrong type of chat event: expected $expected, but was $but")
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,11 @@
|
||||
package dev.inmo.tgbotapi.types.message.payments
|
||||
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent
|
||||
import dev.inmo.tgbotapi.types.message.payments.abstracts.PaymentInfo
|
||||
import dev.inmo.tgbotapi.types.payments.SuccessfulPayment
|
||||
|
||||
@Deprecated("Renamed", ReplaceWith("SuccessfulPaymentEvent", "dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent"))
|
||||
typealias SuccessfulPaymentInfo = SuccessfulPaymentEvent
|
||||
data class SuccessfulPaymentEvent(
|
||||
val payment: SuccessfulPayment
|
||||
) : PaymentInfo, CommonEvent
|
@@ -1,8 +0,0 @@
|
||||
package dev.inmo.tgbotapi.types.message.payments
|
||||
|
||||
import dev.inmo.tgbotapi.types.message.payments.abstracts.PaymentInfo
|
||||
import dev.inmo.tgbotapi.types.payments.SuccessfulPayment
|
||||
|
||||
data class SuccessfulPaymentInfo(
|
||||
val payment: SuccessfulPayment
|
||||
) : PaymentInfo
|
Reference in New Issue
Block a user