mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-12-22 16:47:13 +00:00
InputInvoiceMessageContent
This commit is contained in:
parent
a26568aa29
commit
6a3588bb8d
@ -5,6 +5,7 @@
|
||||
* `Core`:
|
||||
* `SendInvoice#startParameter` becomes optional and replaced in `SendInvoice` constructor
|
||||
* Fields `SendInvoice#maxTipAmount` and `SendInvoice#suggestedTipAmounts` have been added
|
||||
* New type `InputInvoiceMessageContent` has been added
|
||||
|
||||
## 0.33.4
|
||||
|
||||
|
@ -0,0 +1,35 @@
|
||||
package dev.inmo.tgbotapi.CommonAbstracts
|
||||
|
||||
import dev.inmo.tgbotapi.types.payments.abstracts.*
|
||||
|
||||
interface CommonSendInvoiceData : Titled, Currencied, Priced {
|
||||
val description: String
|
||||
val payload: String
|
||||
val providerToken: String
|
||||
val maxTipAmount: Int?
|
||||
val suggestedTipAmounts: List<Int>?
|
||||
val providerData: String?
|
||||
val requireName: Boolean
|
||||
val requirePhoneNumber: Boolean
|
||||
val requireEmail: Boolean
|
||||
val requireShippingAddress: Boolean
|
||||
val shouldSendPhoneNumberToProvider: Boolean
|
||||
val shouldSendEmailToProvider: Boolean
|
||||
val priceDependOnShipAddress: Boolean
|
||||
|
||||
val photoUrl: String?
|
||||
val photoSize: Long?
|
||||
val photoWidth: Int?
|
||||
val photoHeight: Int?
|
||||
|
||||
|
||||
|
||||
fun setPhoto(
|
||||
photoUrl: String,
|
||||
photoSize: Long? = null,
|
||||
photoWidth: Int? = null,
|
||||
photoHeight: Int? = null
|
||||
)
|
||||
|
||||
fun unsetPhoto()
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package dev.inmo.tgbotapi.requests.send.payments
|
||||
|
||||
import dev.inmo.tgbotapi.CommonAbstracts.CommonSendInvoiceData
|
||||
import dev.inmo.tgbotapi.CommonAbstracts.types.*
|
||||
import dev.inmo.tgbotapi.requests.send.abstracts.SendMessageRequest
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
@ -23,40 +24,40 @@ data class SendInvoice(
|
||||
@SerialName(chatIdField)
|
||||
override val chatId: ChatId,
|
||||
@SerialName(titleField)
|
||||
val title: String,
|
||||
override val title: String,
|
||||
@SerialName(descriptionField)
|
||||
val description: String,
|
||||
override val description: String,
|
||||
@SerialName(payloadField)
|
||||
val payload: String,
|
||||
override val payload: String,
|
||||
@SerialName(providerTokenField)
|
||||
val providerToken: String,
|
||||
override val providerToken: String,
|
||||
@SerialName(currencyField)
|
||||
override val currency: Currency,
|
||||
@Serializable(LabeledPricesSerializer::class)
|
||||
@SerialName(pricesField)
|
||||
override val prices: List<LabeledPrice>,
|
||||
@SerialName(maxTipAmountField)
|
||||
val maxTipAmount: Int? = null,
|
||||
override val maxTipAmount: Int? = null,
|
||||
@SerialName(suggestedTipAmountsField)
|
||||
val suggestedTipAmounts: List<Int>? = null,
|
||||
override val suggestedTipAmounts: List<Int>? = null,
|
||||
@SerialName(startParameterField)
|
||||
val startParameter: StartParameter? = null,
|
||||
@SerialName(providerDataField)
|
||||
val providerData: String? = null,
|
||||
override val providerData: String? = null,
|
||||
@SerialName(requireNameField)
|
||||
val requireName: Boolean = false,
|
||||
override val requireName: Boolean = false,
|
||||
@SerialName(requirePhoneNumberField)
|
||||
val requirePhoneNumber: Boolean = false,
|
||||
override val requirePhoneNumber: Boolean = false,
|
||||
@SerialName(requireEmailField)
|
||||
val requireEmail: Boolean = false,
|
||||
override val requireEmail: Boolean = false,
|
||||
@SerialName(requireShippingAddressField)
|
||||
val requireShippingAddress: Boolean = false,
|
||||
override val requireShippingAddress: Boolean = false,
|
||||
@SerialName(shouldSendPhoneNumberToProviderField)
|
||||
val shouldSendPhoneNumberToProvider: Boolean = false,
|
||||
override val shouldSendPhoneNumberToProvider: Boolean = false,
|
||||
@SerialName(shouldSendEmailToProviderField)
|
||||
val shouldSendEmailToProvider: Boolean = false,
|
||||
override val shouldSendEmailToProvider: Boolean = false,
|
||||
@SerialName(priceDependOnShipAddressField)
|
||||
val priceDependOnShipAddress: Boolean = false,
|
||||
override val priceDependOnShipAddress: Boolean = false,
|
||||
@SerialName(disableNotificationField)
|
||||
override val disableNotification: Boolean = false,
|
||||
@SerialName(replyToMessageIdField)
|
||||
@ -65,8 +66,7 @@ data class SendInvoice(
|
||||
override val allowSendingWithoutReply: Boolean? = null,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: InlineKeyboardMarkup? = null
|
||||
) : Currencied,
|
||||
Priced,
|
||||
) : CommonSendInvoiceData,
|
||||
ChatRequest,
|
||||
DisableNotification,
|
||||
ReplyMessageId,
|
||||
@ -79,17 +79,17 @@ data class SendInvoice(
|
||||
get() = serializer()
|
||||
|
||||
@SerialName(photoUrlField)
|
||||
var photoUrl: String? = null
|
||||
override var photoUrl: String? = null
|
||||
private set
|
||||
@SerialName(photoSizeField)
|
||||
var photoSize: Long? = null
|
||||
override var photoSize: Long? = null
|
||||
private set
|
||||
|
||||
@SerialName(photoWidthField)
|
||||
var photoWidth: Int? = null
|
||||
override var photoWidth: Int? = null
|
||||
private set
|
||||
@SerialName(photoHeightField)
|
||||
var photoHeight: Int? = null
|
||||
override var photoHeight: Int? = null
|
||||
private set
|
||||
|
||||
init {
|
||||
@ -103,11 +103,11 @@ data class SendInvoice(
|
||||
}
|
||||
}
|
||||
|
||||
fun setPhoto(
|
||||
override fun setPhoto(
|
||||
photoUrl: String,
|
||||
photoSize: Long? = null,
|
||||
photoWidth: Int? = null,
|
||||
photoHeight: Int? = null
|
||||
photoSize: Long?,
|
||||
photoWidth: Int?,
|
||||
photoHeight: Int?
|
||||
) {
|
||||
this.photoUrl = photoUrl
|
||||
this.photoSize = photoSize
|
||||
@ -115,7 +115,7 @@ data class SendInvoice(
|
||||
this.photoHeight = photoHeight
|
||||
}
|
||||
|
||||
fun unsetPhoto() {
|
||||
override fun unsetPhoto() {
|
||||
photoUrl = null
|
||||
photoSize = null
|
||||
photoWidth = null
|
||||
|
@ -80,6 +80,8 @@ val openPeriodPollSecondsLimit = 5 .. 600
|
||||
|
||||
val membersLimit = 1 .. 99999
|
||||
|
||||
val suggestedTipAmountsLimit = 1 .. 4
|
||||
|
||||
const val botActionActualityTime: Seconds = 5
|
||||
|
||||
// Made as lazy for correct work in K/JS
|
||||
@ -315,6 +317,9 @@ const val xShiftField = "x_shift"
|
||||
const val yShiftField = "y_shift"
|
||||
const val scaleField = "scale"
|
||||
|
||||
const val maxTipAmountField = "max_tip_amount"
|
||||
const val suggestedTipAmountsField = "suggested_tip_amounts"
|
||||
|
||||
const val explanationEntitiesField = "explanation_entities"
|
||||
const val explanationParseModeField = "explanation_parse_mode"
|
||||
const val openPeriodField = "open_period"
|
||||
|
@ -0,0 +1,80 @@
|
||||
package dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent
|
||||
|
||||
import dev.inmo.tgbotapi.CommonAbstracts.CommonSendInvoiceData
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.InlineQueries.abstracts.InputMessageContent
|
||||
import dev.inmo.tgbotapi.types.payments.LabeledPrice
|
||||
import dev.inmo.tgbotapi.types.payments.LabeledPricesSerializer
|
||||
import dev.inmo.tgbotapi.types.payments.abstracts.Currency
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
class InputInvoiceMessageContent(
|
||||
@SerialName(titleField)
|
||||
override val title: String,
|
||||
@SerialName(descriptionField)
|
||||
override val description: String,
|
||||
@SerialName(payloadField)
|
||||
override val payload: String,
|
||||
@SerialName(providerTokenField)
|
||||
override val providerToken: String,
|
||||
@SerialName(currencyField)
|
||||
override val currency: Currency,
|
||||
@Serializable(LabeledPricesSerializer::class)
|
||||
@SerialName(pricesField)
|
||||
override val prices: List<LabeledPrice>,
|
||||
@SerialName(maxTipAmountField)
|
||||
override val maxTipAmount: Int? = null,
|
||||
@SerialName(suggestedTipAmountsField)
|
||||
override val suggestedTipAmounts: List<Int>? = null,
|
||||
@SerialName(providerDataField)
|
||||
override val providerData: String? = null,
|
||||
@SerialName(requireNameField)
|
||||
override val requireName: Boolean = false,
|
||||
@SerialName(requirePhoneNumberField)
|
||||
override val requirePhoneNumber: Boolean = false,
|
||||
@SerialName(requireEmailField)
|
||||
override val requireEmail: Boolean = false,
|
||||
@SerialName(requireShippingAddressField)
|
||||
override val requireShippingAddress: Boolean = false,
|
||||
@SerialName(shouldSendPhoneNumberToProviderField)
|
||||
override val shouldSendPhoneNumberToProvider: Boolean = false,
|
||||
@SerialName(shouldSendEmailToProviderField)
|
||||
override val shouldSendEmailToProvider: Boolean = false,
|
||||
@SerialName(priceDependOnShipAddressField)
|
||||
override val priceDependOnShipAddress: Boolean = false
|
||||
) : InputMessageContent, CommonSendInvoiceData {
|
||||
@SerialName(photoUrlField)
|
||||
override var photoUrl: String? = null
|
||||
private set
|
||||
@SerialName(photoSizeField)
|
||||
override var photoSize: Long? = null
|
||||
private set
|
||||
|
||||
@SerialName(photoWidthField)
|
||||
override var photoWidth: Int? = null
|
||||
private set
|
||||
@SerialName(photoHeightField)
|
||||
override var photoHeight: Int? = null
|
||||
private set
|
||||
|
||||
override fun setPhoto(
|
||||
photoUrl: String,
|
||||
photoSize: Long?,
|
||||
photoWidth: Int?,
|
||||
photoHeight: Int?
|
||||
) {
|
||||
this.photoUrl = photoUrl
|
||||
this.photoSize = photoSize
|
||||
this.photoWidth = photoWidth
|
||||
this.photoHeight = photoHeight
|
||||
}
|
||||
|
||||
override fun unsetPhoto() {
|
||||
photoUrl = null
|
||||
photoSize = null
|
||||
photoWidth = null
|
||||
photoHeight = null
|
||||
}
|
||||
}
|
@ -17,6 +17,7 @@ internal object InputMessageContentSerializer : KSerializer<InputMessageContent>
|
||||
is InputLocationMessageContent -> InputLocationMessageContent.serializer().serialize(encoder, value)
|
||||
is InputTextMessageContent -> InputTextMessageContent.serializer().serialize(encoder, value)
|
||||
is InputVenueMessageContent -> InputVenueMessageContent.serializer().serialize(encoder, value)
|
||||
is InputInvoiceMessageContent -> InputInvoiceMessageContent.serializer().serialize(encoder, value)
|
||||
else -> throw IllegalArgumentException("Unknown for serializing InputContactMessageContent")
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user