1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2025-09-15 13:19:30 +00:00

SuccessfulPaymentEvent

This commit is contained in:
2021-10-03 11:43:15 +06:00
parent 702c1bc1ff
commit e51a4b7702
19 changed files with 180 additions and 39 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,3 +1,3 @@
package dev.inmo.tgbotapi.types.message.ChatEvents.abstracts
interface CommonEvent : ChannelEvent, GroupEvent, SupergroupEvent
interface CommonEvent : CommonGroupEvent, PrivateEvent

View File

@@ -0,0 +1,3 @@
package dev.inmo.tgbotapi.types.message.ChatEvents.abstracts
interface CommonGroupEvent : ChannelEvent, GroupEvent, SupergroupEvent

View File

@@ -0,0 +1,3 @@
package dev.inmo.tgbotapi.types.message.ChatEvents.abstracts
interface PrivateEvent : ChatEvent

View File

@@ -1,3 +1,3 @@
package dev.inmo.tgbotapi.types.message.ChatEvents.abstracts
interface VoiceChatEvent : CommonEvent
interface VoiceChatEvent : CommonGroupEvent

View File

@@ -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>

View File

@@ -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
}

View File

@@ -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")
}
}

View File

@@ -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

View File

@@ -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