mirror of
https://github.com/InsanusMokrassar/PlaguPoster.git
synced 2024-06-29 12:57:43 +00:00
26 lines
816 B
Kotlin
26 lines
816 B
Kotlin
|
package dev.inmo.plaguposter.ratings.exposed
|
||
|
|
||
|
import dev.inmo.micro_utils.repos.KeyValueRepo
|
||
|
import dev.inmo.micro_utils.repos.exposed.keyvalue.ExposedKeyValueRepo
|
||
|
import dev.inmo.micro_utils.repos.mappers.withMapper
|
||
|
import dev.inmo.plaguposter.posts.models.PostId
|
||
|
import dev.inmo.plaguposter.ratings.models.Rating
|
||
|
import dev.inmo.plaguposter.ratings.repo.RatingsRepo
|
||
|
import org.jetbrains.exposed.sql.Column
|
||
|
import org.jetbrains.exposed.sql.Database
|
||
|
|
||
|
class ExposedRatingsRepo(
|
||
|
database: Database,
|
||
|
postIdColumnReference: Column<String>
|
||
|
) : RatingsRepo, KeyValueRepo<PostId, Rating> by ExposedKeyValueRepo(
|
||
|
database,
|
||
|
{ text("post_id") references postIdColumnReference },
|
||
|
{ double("rating") },
|
||
|
"ratings"
|
||
|
).withMapper(
|
||
|
{ string },
|
||
|
{ double },
|
||
|
{ PostId(this) },
|
||
|
{ Rating(this) }
|
||
|
)
|