mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-09-09 10:12:58 +00:00
add core requests for business account (excluding gifts)
This commit is contained in:
@@ -0,0 +1,13 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.abstracts
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.abstracts.types.WithBusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import kotlinx.serialization.json.JsonObject
|
||||||
|
|
||||||
|
interface BusinessRequest<T: Any> : Request<T>, WithBusinessConnectionId {
|
||||||
|
interface Simple<T : Any> : BusinessRequest<T>, SimpleRequest<T>
|
||||||
|
interface Multipart<T : Any> : BusinessRequest<T>, MultipartRequest.Common<T>, SimpleRequest<T> {
|
||||||
|
override val data: SimpleRequest<T>
|
||||||
|
get() = this
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,27 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class DeleteBusinessMessages(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(messageIdsField)
|
||||||
|
val messagesIds: List<MessageId>
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "deleteBusinessMessages"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,36 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
import dev.inmo.tgbotapi.types.bioField
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import dev.inmo.tgbotapi.types.payments.stars.StarAmount
|
||||||
|
import dev.inmo.tgbotapi.types.usernameField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class GetBusinessAccountStarBalance(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
) : BusinessRequest.Simple<StarAmount> {
|
||||||
|
override fun method(): String = "getBusinessAccountStarBalance"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<StarAmount>
|
||||||
|
get() = StarAmount.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,62 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.MultipartFile
|
||||||
|
import dev.inmo.tgbotapi.types.DoubleSeconds
|
||||||
|
import dev.inmo.tgbotapi.types.Seconds
|
||||||
|
import dev.inmo.tgbotapi.types.StickerFormat
|
||||||
|
import dev.inmo.tgbotapi.types.animationField
|
||||||
|
import dev.inmo.tgbotapi.types.mainFrameTimestampField
|
||||||
|
import dev.inmo.tgbotapi.types.photoField
|
||||||
|
import dev.inmo.tgbotapi.utils.deserializeWithRaw
|
||||||
|
import kotlinx.serialization.EncodeDefault
|
||||||
|
import kotlinx.serialization.KSerializer
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||||
|
import kotlinx.serialization.encoding.Decoder
|
||||||
|
import kotlinx.serialization.encoding.Encoder
|
||||||
|
import kotlinx.serialization.json.JsonObject
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
sealed interface InputProfilePhoto {
|
||||||
|
val type: String
|
||||||
|
val mediaPair: Pair<String, MultipartFile>
|
||||||
|
@Serializable
|
||||||
|
data class Static(
|
||||||
|
@SerialName(photoField)
|
||||||
|
val photo: MultipartFile
|
||||||
|
) : InputProfilePhoto {
|
||||||
|
override val mediaPair: Pair<String, MultipartFile>
|
||||||
|
get() = photoField to photo
|
||||||
|
@EncodeDefault
|
||||||
|
override val type: String = "static"
|
||||||
|
}
|
||||||
|
@Serializable
|
||||||
|
data class Animated(
|
||||||
|
@SerialName(animationField)
|
||||||
|
val animation: MultipartFile,
|
||||||
|
@SerialName(mainFrameTimestampField)
|
||||||
|
val mainFrameTimestamp: DoubleSeconds? = null
|
||||||
|
) : InputProfilePhoto {
|
||||||
|
override val mediaPair: Pair<String, MultipartFile>
|
||||||
|
get() = animationField to animation
|
||||||
|
@EncodeDefault
|
||||||
|
override val type: String = "animated"
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object : KSerializer<InputProfilePhoto> {
|
||||||
|
override val descriptor: SerialDescriptor
|
||||||
|
get() = JsonObject.serializer().descriptor
|
||||||
|
|
||||||
|
override fun deserialize(decoder: Decoder): InputProfilePhoto {
|
||||||
|
error("Deserialization is not supported yet")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun serialize(encoder: Encoder, value: InputProfilePhoto) {
|
||||||
|
when (value) {
|
||||||
|
is Animated -> Animated.serializer().serialize(encoder, value)
|
||||||
|
is Static -> Static.serializer().serialize(encoder, value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,33 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class ReadBusinessMessage(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(chatIdField)
|
||||||
|
val chatId: ChatId,
|
||||||
|
@SerialName(messageIdField)
|
||||||
|
val messageId: MessageId
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "readBusinessMessage"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,39 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.MultipartFile
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.isPublicField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import dev.inmo.tgbotapi.types.photoField
|
||||||
|
import dev.inmo.tgbotapi.types.usernameField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class RemoveBusinessAccountProfilePhoto(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(isPublicField)
|
||||||
|
val isPublic: Boolean = false
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "removeBusinessAccountProfilePhoto"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,37 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
import dev.inmo.tgbotapi.types.bioField
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import dev.inmo.tgbotapi.types.usernameField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class SetBusinessAccountBio(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(bioField)
|
||||||
|
val bio: String
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "setBusinessAccountBio"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,36 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class SetBusinessAccountName(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(firstNameField)
|
||||||
|
val firstName: String,
|
||||||
|
@SerialName(lastNameField)
|
||||||
|
val lastName: String
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "setBusinessAccountName"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,45 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.MultipartFile
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.isPublicField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import dev.inmo.tgbotapi.types.photoField
|
||||||
|
import dev.inmo.tgbotapi.types.usernameField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class SetBusinessAccountProfilePhoto(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(photoField)
|
||||||
|
val photo: InputProfilePhoto,
|
||||||
|
@SerialName(isPublicField)
|
||||||
|
val isPublic: Boolean = false
|
||||||
|
) : BusinessRequest.Multipart<Boolean> {
|
||||||
|
override fun method(): String = "setBusinessAccountProfilePhoto"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
|
||||||
|
override val mediaMap: Map<String, MultipartFile> = mapOf(
|
||||||
|
photo.mediaPair
|
||||||
|
)
|
||||||
|
}
|
@@ -0,0 +1,36 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import dev.inmo.tgbotapi.types.usernameField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class SetBusinessAccountUsername(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(usernameField)
|
||||||
|
val username: Username
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "setBusinessAccountUsername"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -0,0 +1,39 @@
|
|||||||
|
package dev.inmo.tgbotapi.requests.business_connection
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.BusinessRequest
|
||||||
|
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||||
|
import dev.inmo.tgbotapi.types.ChatId
|
||||||
|
import dev.inmo.tgbotapi.types.MessageId
|
||||||
|
import dev.inmo.tgbotapi.types.Username
|
||||||
|
import dev.inmo.tgbotapi.types.bioField
|
||||||
|
import dev.inmo.tgbotapi.types.businessConnectionIdField
|
||||||
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
|
import dev.inmo.tgbotapi.types.chatIdField
|
||||||
|
import dev.inmo.tgbotapi.types.firstNameField
|
||||||
|
import dev.inmo.tgbotapi.types.lastNameField
|
||||||
|
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdField
|
||||||
|
import dev.inmo.tgbotapi.types.messageIdsField
|
||||||
|
import dev.inmo.tgbotapi.types.payments.stars.StarAmount
|
||||||
|
import dev.inmo.tgbotapi.types.starCountField
|
||||||
|
import dev.inmo.tgbotapi.types.usernameField
|
||||||
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class TransferBusinessAccountStarBalance(
|
||||||
|
@SerialName(businessConnectionIdField)
|
||||||
|
override val businessConnectionId: BusinessConnectionId,
|
||||||
|
@SerialName(starCountField)
|
||||||
|
val starCount: Int
|
||||||
|
) : BusinessRequest.Simple<Boolean> {
|
||||||
|
override fun method(): String = "transferBusinessAccountStars"
|
||||||
|
|
||||||
|
override val resultDeserializer: DeserializationStrategy<Boolean>
|
||||||
|
get() = Boolean.serializer()
|
||||||
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
|
get() = serializer()
|
||||||
|
}
|
@@ -19,6 +19,7 @@ typealias GooglePlaceType = String
|
|||||||
typealias MembersLimit = Int
|
typealias MembersLimit = Int
|
||||||
|
|
||||||
typealias Seconds = Int
|
typealias Seconds = Int
|
||||||
|
typealias DoubleSeconds = Double
|
||||||
typealias MilliSeconds = Long
|
typealias MilliSeconds = Long
|
||||||
typealias LongSeconds = Long
|
typealias LongSeconds = Long
|
||||||
typealias UnixTimeStamp = LongSeconds
|
typealias UnixTimeStamp = LongSeconds
|
||||||
@@ -505,6 +506,7 @@ const val creatorField = "creator"
|
|||||||
const val subscriptionPeriodField = "subscription_period"
|
const val subscriptionPeriodField = "subscription_period"
|
||||||
const val subscriptionPriceField = "subscription_price"
|
const val subscriptionPriceField = "subscription_price"
|
||||||
const val copyTextField = "copy_text"
|
const val copyTextField = "copy_text"
|
||||||
|
const val isPublicField = "is_public"
|
||||||
const val giftField = "gift"
|
const val giftField = "gift"
|
||||||
const val giftsField = "gifts"
|
const val giftsField = "gifts"
|
||||||
|
|
||||||
@@ -600,6 +602,8 @@ const val voiceField = "voice"
|
|||||||
const val videoNoteField = "video_note"
|
const val videoNoteField = "video_note"
|
||||||
const val mediaField = "media"
|
const val mediaField = "media"
|
||||||
|
|
||||||
|
const val mainFrameTimestampField = "main_frame_timestamp"
|
||||||
|
|
||||||
const val disableEditMessageField = "disable_edit_message"
|
const val disableEditMessageField = "disable_edit_message"
|
||||||
const val scoreField = "score"
|
const val scoreField = "score"
|
||||||
const val forceField = "force"
|
const val forceField = "force"
|
||||||
|
@@ -0,0 +1,14 @@
|
|||||||
|
package dev.inmo.tgbotapi.types.payments.stars
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.types.amountField
|
||||||
|
import dev.inmo.tgbotapi.types.nanostarAmountField
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class StarAmount(
|
||||||
|
@SerialName(amountField)
|
||||||
|
val amount: Long,
|
||||||
|
@SerialName(nanostarAmountField)
|
||||||
|
val nanostarAmount: Long = 0,
|
||||||
|
)
|
@@ -0,0 +1,15 @@
|
|||||||
|
package dev.inmo.tgbotapi.utils
|
||||||
|
|
||||||
|
import kotlinx.serialization.KSerializer
|
||||||
|
import kotlinx.serialization.encoding.Decoder
|
||||||
|
import kotlinx.serialization.json.JsonDecoder
|
||||||
|
import kotlinx.serialization.json.JsonElement
|
||||||
|
|
||||||
|
fun <T> Decoder.deserializeWithRaw(serializer: KSerializer<T>): Pair<T, JsonElement?> {
|
||||||
|
return if (this is JsonDecoder) {
|
||||||
|
val json = decodeJsonElement()
|
||||||
|
this.json.decodeFromJsonElement(serializer, json) to json
|
||||||
|
} else {
|
||||||
|
serializer.deserialize(this) to null
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user