add selector

This commit is contained in:
2022-09-06 23:56:58 +06:00
parent cf5a4c0f61
commit f3f7761bf9
16 changed files with 361 additions and 17 deletions

View File

@@ -0,0 +1,21 @@
package dev.inmo.plaguposter.ratings.selector
import dev.inmo.plaguposter.posts.models.PostId
import dev.inmo.plaguposter.ratings.repo.RatingsRepo
import dev.inmo.plaguposter.ratings.selector.models.SelectorConfig
class DefaultSelector (
private val config: SelectorConfig,
private val repo: RatingsRepo
) : Selector {
override suspend fun take(n: Int): List<PostId> {
val result = mutableListOf<PostId>()
do {
val selected = config.active ?.ratings ?.select(repo, result) ?: break
result.add(selected)
} while (result.size < n)
return result.toList()
}
}