mirror of
https://github.com/InsanusMokrassar/PlaguPoster.git
synced 2025-12-03 19:45:42 +00:00
added ratings
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package dev.inmo.plaguposter.ratings.source.repos
|
||||
|
||||
import dev.inmo.micro_utils.repos.exposed.initTable
|
||||
import dev.inmo.micro_utils.repos.exposed.keyvalue.AbstractExposedKeyValueRepo
|
||||
import dev.inmo.plaguposter.common.ShortMessageInfo
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.PollIdentifier
|
||||
import org.jetbrains.exposed.sql.*
|
||||
import org.jetbrains.exposed.sql.statements.InsertStatement
|
||||
import org.jetbrains.exposed.sql.statements.UpdateStatement
|
||||
|
||||
class ExposedPollsToMessagesInfoRepo(
|
||||
database: Database
|
||||
) : PollsToMessagesInfoRepo, AbstractExposedKeyValueRepo<PollIdentifier, ShortMessageInfo>(
|
||||
database,
|
||||
"polls_to_their_messages_info"
|
||||
) {
|
||||
override val keyColumn = text("poll_id")
|
||||
private val chatIdColumn = long("chat_id")
|
||||
private val messageIdColumn = long("message_id")
|
||||
override val selectById: SqlExpressionBuilder.(PollIdentifier) -> Op<Boolean> = { keyColumn.eq(it) }
|
||||
override val selectByValue: SqlExpressionBuilder.(ShortMessageInfo) -> Op<Boolean> = {
|
||||
chatIdColumn.eq(it.chatId.chatId).and(
|
||||
messageIdColumn.eq(it.messageId)
|
||||
)
|
||||
}
|
||||
override val ResultRow.asKey: PollIdentifier
|
||||
get() = get(keyColumn)
|
||||
override val ResultRow.asObject: ShortMessageInfo
|
||||
get() = ShortMessageInfo(
|
||||
get(chatIdColumn).let(::ChatId),
|
||||
get(messageIdColumn)
|
||||
)
|
||||
|
||||
init {
|
||||
initTable()
|
||||
}
|
||||
|
||||
override fun update(k: PollIdentifier, v: ShortMessageInfo, it: UpdateStatement) {
|
||||
it[chatIdColumn] = v.chatId.chatId
|
||||
it[messageIdColumn] = v.messageId
|
||||
}
|
||||
|
||||
override fun insert(k: PollIdentifier, v: ShortMessageInfo, it: InsertStatement<Number>) {
|
||||
it[keyColumn] = k
|
||||
it[chatIdColumn] = v.chatId.chatId
|
||||
it[messageIdColumn] = v.messageId
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user