production ready?

This commit is contained in:
2022-09-04 15:46:45 +06:00
parent 1e393103c8
commit e8637a2de6
12 changed files with 130 additions and 19 deletions

View File

@@ -1,20 +1,32 @@
package dev.inmo.plaguposter.ratings
import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions
import dev.inmo.micro_utils.repos.unset
import dev.inmo.plagubot.Plugin
import dev.inmo.plaguposter.posts.exposed.ExposedPostsRepo
import dev.inmo.plaguposter.posts.repo.PostsRepo
import dev.inmo.plaguposter.ratings.exposed.ExposedRatingsRepo
import dev.inmo.plaguposter.ratings.repo.*
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
import kotlinx.serialization.json.*
import org.jetbrains.exposed.sql.Database
import org.koin.core.Koin
import org.koin.core.module.Module
import org.koin.dsl.binds
object Plugin : Plugin {
override fun Module.setupDI(database: Database, params: JsonObject) {
single { ExposedRatingsRepo(database, get<ExposedPostsRepo>().idColumn) } binds arrayOf(
single { ExposedRatingsRepo(database) } binds arrayOf(
RatingsRepo::class,
ReadRatingsRepo::class,
WriteRatingsRepo::class,
)
}
override suspend fun BehaviourContext.setupBotPlugin(koin: Koin) {
val ratingsRepo = koin.get<RatingsRepo>()
koin.get<PostsRepo>().deletedObjectsIdsFlow.subscribeSafelyWithoutExceptions(this) {
ratingsRepo.unset(it)
}
}
}

View File

@@ -10,11 +10,10 @@ import org.jetbrains.exposed.sql.Column
import org.jetbrains.exposed.sql.Database
class ExposedRatingsRepo(
database: Database,
postIdColumnReference: Column<String>
database: Database
) : RatingsRepo, KeyValueRepo<PostId, Rating> by ExposedKeyValueRepo(
database,
{ text("post_id") references postIdColumnReference },
{ text("post_id") },
{ double("rating") },
"ratings"
).withMapper(