diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/suggested/ApproveSuggestedPost.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/suggested/ApproveSuggestedPost.kt new file mode 100644 index 0000000000..e98022ca4f --- /dev/null +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/suggested/ApproveSuggestedPost.kt @@ -0,0 +1,28 @@ +package dev.inmo.tgbotapi.extensions.api.suggested + +import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.suggested.ApproveSuggestedPost +import dev.inmo.tgbotapi.types.IdChatIdentifier +import dev.inmo.tgbotapi.types.MessageId +import dev.inmo.tgbotapi.types.TelegramDate +import dev.inmo.tgbotapi.types.chat.Chat +import dev.inmo.tgbotapi.types.message.abstracts.Message + +public suspend fun TelegramBot.approveSuggestedPost( + chatId: IdChatIdentifier, + messageId: MessageId, + sendDate: TelegramDate? = null, +): Boolean = execute( + ApproveSuggestedPost(chatId, messageId, sendDate) +) + +public suspend fun TelegramBot.approveSuggestedPost( + chat: Chat, + messageId: MessageId, + sendDate: TelegramDate? = null, +): Boolean = approveSuggestedPost(chat.id, messageId, sendDate) + +public suspend fun TelegramBot.approveSuggestedPost( + message: Message, + sendDate: TelegramDate? = null, +): Boolean = approveSuggestedPost(message.chat, message.messageId, sendDate) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/suggested/DeclineSuggestedPost.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/suggested/DeclineSuggestedPost.kt new file mode 100644 index 0000000000..5d8ae5fbb0 --- /dev/null +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/suggested/DeclineSuggestedPost.kt @@ -0,0 +1,29 @@ +package dev.inmo.tgbotapi.extensions.api.suggested + +import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.suggested.ApproveSuggestedPost +import dev.inmo.tgbotapi.requests.suggested.DeclineSuggestedPost +import dev.inmo.tgbotapi.types.IdChatIdentifier +import dev.inmo.tgbotapi.types.MessageId +import dev.inmo.tgbotapi.types.TelegramDate +import dev.inmo.tgbotapi.types.chat.Chat +import dev.inmo.tgbotapi.types.message.abstracts.Message + +public suspend fun TelegramBot.declineSuggestedPost( + chatId: IdChatIdentifier, + messageId: MessageId, + comment: String? = null, +): Boolean = execute( + DeclineSuggestedPost(chatId, messageId, comment) +) + +public suspend fun TelegramBot.declineSuggestedPost( + chat: Chat, + messageId: MessageId, + comment: String? = null, +): Boolean = declineSuggestedPost(chat.id, messageId, comment) + +public suspend fun TelegramBot.declineSuggestedPost( + message: Message, + comment: String? = null, +): Boolean = declineSuggestedPost(message.chat, message.messageId, comment) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/suggested/ApproveSuggestedPost.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/suggested/ApproveSuggestedPost.kt new file mode 100644 index 0000000000..13a4467d58 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/suggested/ApproveSuggestedPost.kt @@ -0,0 +1,35 @@ +package dev.inmo.tgbotapi.requests.suggested + +import dev.inmo.tgbotapi.abstracts.types.ChatRequest +import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest +import dev.inmo.tgbotapi.types.ChatIdentifierSerializer +import dev.inmo.tgbotapi.types.IdChatIdentifier +import dev.inmo.tgbotapi.types.MessageId +import dev.inmo.tgbotapi.types.TelegramDate +import dev.inmo.tgbotapi.types.chatIdField +import dev.inmo.tgbotapi.types.messageIdField +import dev.inmo.tgbotapi.types.sendDateField +import kotlinx.serialization.DeserializationStrategy +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.SerializationStrategy +import kotlinx.serialization.builtins.serializer + +@Serializable +data class ApproveSuggestedPost( + @SerialName(chatIdField) + @Serializable(ChatIdentifierSerializer::class) + override val chatId: IdChatIdentifier, + @SerialName(messageIdField) + val messageId: MessageId, + @SerialName(sendDateField) + val sendDate: TelegramDate? = null, +) : SimpleRequest, ChatRequest { + override val requestSerializer: SerializationStrategy + get() = serializer() + + override fun method(): String = "approveSuggestedPost" + + override val resultDeserializer: DeserializationStrategy + get() = Boolean.serializer() +} \ No newline at end of file diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/suggested/DeclineSuggestedPost.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/suggested/DeclineSuggestedPost.kt new file mode 100644 index 0000000000..6098b418cf --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/suggested/DeclineSuggestedPost.kt @@ -0,0 +1,38 @@ +package dev.inmo.tgbotapi.requests.suggested + +import dev.inmo.tgbotapi.abstracts.types.ChatRequest +import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest +import dev.inmo.tgbotapi.types.ChatIdentifier +import dev.inmo.tgbotapi.types.ChatIdentifierSerializer +import dev.inmo.tgbotapi.types.IdChatIdentifier +import dev.inmo.tgbotapi.types.MessageId +import dev.inmo.tgbotapi.types.MessageIdentifier +import dev.inmo.tgbotapi.types.TelegramDate +import dev.inmo.tgbotapi.types.chatIdField +import dev.inmo.tgbotapi.types.commentField +import dev.inmo.tgbotapi.types.messageIdField +import dev.inmo.tgbotapi.types.sendDateField +import kotlinx.serialization.DeserializationStrategy +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.SerializationStrategy +import kotlinx.serialization.builtins.serializer + +@Serializable +data class DeclineSuggestedPost( + @SerialName(chatIdField) + @Serializable(ChatIdentifierSerializer::class) + override val chatId: IdChatIdentifier, + @SerialName(messageIdField) + val messageId: MessageId, + @SerialName(commentField) + val comment: String? = null, +) : SimpleRequest, ChatRequest { + override val requestSerializer: SerializationStrategy + get() = serializer() + + override fun method(): String = "declineSuggestedPost" + + override val resultDeserializer: DeserializationStrategy + get() = Boolean.serializer() +} \ No newline at end of file