complete publishing part

This commit is contained in:
2022-08-20 22:26:38 +06:00
parent 941505df42
commit c4e7f338a9
13 changed files with 146 additions and 9 deletions

View File

@@ -2,5 +2,9 @@ package dev.inmo.plaguposter.posts.repo
import dev.inmo.micro_utils.repos.ReadCRUDRepo
import dev.inmo.plaguposter.posts.models.*
import dev.inmo.tgbotapi.types.ChatId
import dev.inmo.tgbotapi.types.MessageIdentifier
interface ReadPostsRepo : ReadCRUDRepo<RegisteredPost, PostId>
interface ReadPostsRepo : ReadCRUDRepo<RegisteredPost, PostId> {
suspend fun getIdByChatAndMessage(chatId: ChatId, messageId: MessageIdentifier): PostId?
}

View File

@@ -2,6 +2,7 @@ package dev.inmo.plaguposter.posts.sending
import dev.inmo.kslog.common.logger
import dev.inmo.kslog.common.w
import dev.inmo.micro_utils.repos.deleteById
import dev.inmo.plaguposter.posts.models.PostId
import dev.inmo.plaguposter.posts.repo.PostsRepo
import dev.inmo.tgbotapi.bot.TelegramBot
@@ -14,12 +15,13 @@ import dev.inmo.tgbotapi.types.message.content.MediaGroupContent
class PostPublisher(
private val bot: TelegramBot,
private val repo: PostsRepo,
private val postsRepo: PostsRepo,
private val cachingChatId: ChatId,
private val targetChatId: ChatId
private val targetChatId: ChatId,
private val deleteAfterPosting: Boolean = true
) {
suspend fun publish(postId: PostId) {
val messagesInfo = repo.getById(postId) ?: let {
val messagesInfo = postsRepo.getById(postId) ?: let {
logger.w { "Unable to get post with id $postId for publishing" }
return
}
@@ -56,5 +58,9 @@ class PostPublisher(
}
}
if (deleteAfterPosting) {
postsRepo.deleteById(postId)
}
}
}