MicroUtils/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorStandartKeyValueRepo.kt

31 lines
982 B
Kotlin
Raw Normal View History

2020-09-22 01:47:01 +00:00
package dev.inmo.micro_utils.repos.ktor.client.key_value
import dev.inmo.micro_utils.repos.StandardKeyValueRepo
2020-10-14 16:29:03 +00:00
import dev.inmo.micro_utils.repos.ReadStandardKeyValueRepo
import dev.inmo.micro_utils.repos.WriteStandardKeyValueRepo
2020-09-22 01:47:01 +00:00
import io.ktor.client.*
import kotlinx.serialization.KSerializer
2020-10-14 18:26:37 +00:00
import kotlin.js.JsExport
2020-09-22 01:47:01 +00:00
2020-10-14 18:26:37 +00:00
@JsExport
2020-09-22 01:47:01 +00:00
class KtorStandartKeyValueRepo<K, V> (
baseUrl: String,
baseSubpart: String,
client: HttpClient = HttpClient(),
keySerializer: KSerializer<K>,
valueSerializer: KSerializer<V>,
valueNullableSerializer: KSerializer<V?>
) : StandardKeyValueRepo<K, V>,
2020-10-14 16:29:03 +00:00
ReadStandardKeyValueRepo<K, V> by KtorReadStandardKeyValueRepo(
2020-09-22 01:47:01 +00:00
"$baseUrl/$baseSubpart",
client,
keySerializer,
valueSerializer,
valueNullableSerializer
),
2020-10-14 16:29:03 +00:00
WriteStandardKeyValueRepo<K, V> by KtorWriteStandardKeyValueRepo(
2020-09-22 01:47:01 +00:00
"$baseUrl/$baseSubpart",
client,
keySerializer,
valueSerializer
)