mirror of
https://github.com/InsanusMokrassar/PlaguPoster.git
synced 2025-12-06 21:15:39 +00:00
add selector
This commit is contained in:
21
ratings/selector/src/commonMain/kotlin/DefaultSelector.kt
Normal file
21
ratings/selector/src/commonMain/kotlin/DefaultSelector.kt
Normal 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()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user