mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-09-14 21:00:15 +00:00
add support of replaceStickerInSet
This commit is contained in:
@@ -38,7 +38,7 @@ data class AddStickerToSetData internal constructor(
|
||||
@SerialName(nameField)
|
||||
override val name: StickerSetName,
|
||||
@SerialName(stickerField)
|
||||
override val inputSticker: InputSticker
|
||||
override val newSticker: InputSticker
|
||||
) : StandardStickerSetAction {
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
@@ -0,0 +1,59 @@
|
||||
package dev.inmo.tgbotapi.requests.stickers
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.FileId
|
||||
import dev.inmo.tgbotapi.requests.abstracts.MultipartFile
|
||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||
import dev.inmo.tgbotapi.requests.common.CommonMultipartFileRequest
|
||||
import dev.inmo.tgbotapi.requests.stickers.abstracts.StandardStickerSetAction
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.files.File
|
||||
import kotlinx.serialization.*
|
||||
|
||||
fun ReplaceStickerInSet(
|
||||
userId: UserId,
|
||||
stickerSetName: StickerSetName,
|
||||
oldSticker: FileId,
|
||||
newSticker: InputSticker
|
||||
): Request<Boolean> {
|
||||
val data = ReplaceStickerInSetData(
|
||||
userId = userId,
|
||||
name = stickerSetName,
|
||||
oldSticker = oldSticker,
|
||||
newSticker = newSticker
|
||||
)
|
||||
return when (val sticker = newSticker.sticker) {
|
||||
is MultipartFile -> CommonMultipartFileRequest(
|
||||
data,
|
||||
mapOf(sticker.fileId to sticker)
|
||||
)
|
||||
is FileId -> data
|
||||
}
|
||||
}
|
||||
|
||||
fun ReplaceStickerInSet(
|
||||
userId: UserId,
|
||||
stickerSetName: String,
|
||||
oldSticker: FileId,
|
||||
newSticker: InputSticker
|
||||
): Request<Boolean> = ReplaceStickerInSetData(
|
||||
userId = userId,
|
||||
name = StickerSetName(stickerSetName),
|
||||
oldSticker = oldSticker,
|
||||
newSticker = newSticker
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class ReplaceStickerInSetData internal constructor(
|
||||
@SerialName(userIdField)
|
||||
override val userId: UserId,
|
||||
@SerialName(nameField)
|
||||
override val name: StickerSetName,
|
||||
@SerialName(oldStickerField)
|
||||
val oldSticker: FileId,
|
||||
@SerialName(stickerField)
|
||||
override val newSticker: InputSticker
|
||||
) : StandardStickerSetAction {
|
||||
override fun method(): String = "replaceStickerInSet"
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
}
|
@@ -1,8 +1,7 @@
|
||||
package dev.inmo.tgbotapi.requests.stickers.abstracts
|
||||
|
||||
import dev.inmo.tgbotapi.requests.stickers.InputSticker
|
||||
import dev.inmo.tgbotapi.types.stickers.MaskPosition
|
||||
|
||||
interface StandardStickerSetAction : OwnerStickerSetAction {
|
||||
val inputSticker: InputSticker
|
||||
val newSticker: InputSticker
|
||||
}
|
||||
|
@@ -424,6 +424,7 @@ const val offsetField = "offset"
|
||||
const val limitField = "limit"
|
||||
const val stickersField = "stickers"
|
||||
const val stickerField = "sticker"
|
||||
const val oldStickerField = "old_sticker"
|
||||
const val keywordsField = "keywords"
|
||||
const val urlField = "url"
|
||||
const val addressField = "address"
|
||||
|
Reference in New Issue
Block a user