mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2025-11-27 17:56:01 +00:00
renames in kevalues repos
This commit is contained in:
@@ -7,10 +7,10 @@ import io.ktor.http.ContentType
|
||||
import io.ktor.http.encodeURLQueryComponent
|
||||
import kotlinx.serialization.*
|
||||
|
||||
class KtorStandardKeyValuesRepoClient<Key, Value> (
|
||||
readDelegate: ReadOneToManyKeyValueRepo<Key, Value>,
|
||||
writeDelegate: WriteOneToManyKeyValueRepo<Key, Value>
|
||||
) : OneToManyKeyValueRepo<Key, Value> by DelegateBasedOneToManyKeyValueRepo(
|
||||
class KtorKeyValuesRepoClient<Key, Value> (
|
||||
readDelegate: ReadKeyValuesRepo<Key, Value>,
|
||||
writeDelegate: WriteKeyValuesRepo<Key, Value>
|
||||
) : KeyValuesRepo<Key, Value> by DelegateBasedKeyValuesRepo(
|
||||
readDelegate,
|
||||
writeDelegate
|
||||
) {
|
||||
@@ -21,15 +21,15 @@ class KtorStandardKeyValuesRepoClient<Key, Value> (
|
||||
contentType: ContentType,
|
||||
noinline keySerializer: suspend (Key) -> String,
|
||||
noinline valueSerializer: suspend (Value) -> String
|
||||
) = KtorStandardKeyValuesRepoClient(
|
||||
KtorReadStandardKeyValuesRepoClient(
|
||||
) = KtorKeyValuesRepoClient(
|
||||
KtorReadKeyValuesRepoClient(
|
||||
baseUrl,
|
||||
httpClient,
|
||||
contentType,
|
||||
keySerializer,
|
||||
valueSerializer
|
||||
),
|
||||
KtorWriteStandardKeyValuesRepoClient(
|
||||
KtorWriteKeyValuesRepoClient(
|
||||
baseUrl,
|
||||
httpClient,
|
||||
contentType
|
||||
@@ -42,7 +42,7 @@ class KtorStandardKeyValuesRepoClient<Key, Value> (
|
||||
contentType: ContentType,
|
||||
noinline keySerializer: suspend (Key) -> String,
|
||||
noinline valueSerializer: suspend (Value) -> String
|
||||
) = KtorStandardKeyValuesRepoClient(
|
||||
) = KtorKeyValuesRepoClient(
|
||||
buildStandardUrl(baseUrl, subpart),
|
||||
httpClient,
|
||||
contentType,
|
||||
@@ -52,14 +52,14 @@ class KtorStandardKeyValuesRepoClient<Key, Value> (
|
||||
}
|
||||
}
|
||||
|
||||
inline fun <reified Key : Any, reified Value : Any> KtorStandardKeyValuesRepoClient(
|
||||
inline fun <reified Key : Any, reified Value : Any> KtorKeyValuesRepoClient(
|
||||
baseUrl: String,
|
||||
httpClient: HttpClient,
|
||||
contentType: ContentType,
|
||||
keySerializer: SerializationStrategy<Key>,
|
||||
valueSerializer: SerializationStrategy<Value>,
|
||||
serialFormat: StringFormat,
|
||||
) = KtorStandardKeyValuesRepoClient<Key, Value>(
|
||||
) = KtorKeyValuesRepoClient<Key, Value>(
|
||||
baseUrl,
|
||||
httpClient,
|
||||
contentType,
|
||||
@@ -70,14 +70,14 @@ inline fun <reified Key : Any, reified Value : Any> KtorStandardKeyValuesRepoCli
|
||||
serialFormat.encodeToString(valueSerializer, it).encodeURLQueryComponent()
|
||||
}
|
||||
|
||||
inline fun <reified Key : Any, reified Value : Any> KtorStandardKeyValuesRepoClient(
|
||||
inline fun <reified Key : Any, reified Value : Any> KtorKeyValuesRepoClient(
|
||||
baseUrl: String,
|
||||
httpClient: HttpClient,
|
||||
contentType: ContentType,
|
||||
keySerializer: SerializationStrategy<Key>,
|
||||
valueSerializer: SerializationStrategy<Value>,
|
||||
serialFormat: BinaryFormat,
|
||||
) = KtorStandardKeyValuesRepoClient<Key, Value>(
|
||||
) = KtorKeyValuesRepoClient<Key, Value>(
|
||||
baseUrl,
|
||||
httpClient,
|
||||
contentType,
|
||||
@@ -7,20 +7,21 @@ import dev.inmo.micro_utils.repos.*
|
||||
import io.ktor.client.HttpClient
|
||||
import kotlinx.serialization.KSerializer
|
||||
|
||||
@Deprecated("Should be replaced with KtorKeyValuesRepoClient")
|
||||
class KtorOneToManyKeyValueRepo<Key, Value>(
|
||||
baseUrl: String,
|
||||
baseSubpart: String,
|
||||
unifiedRequester: UnifiedRequester,
|
||||
keySerializer: KSerializer<Key>,
|
||||
valueSerializer: KSerializer<Value>,
|
||||
) : OneToManyKeyValueRepo<Key, Value>,
|
||||
ReadOneToManyKeyValueRepo<Key, Value> by KtorReadOneToManyKeyValueRepo<Key, Value> (
|
||||
) : KeyValuesRepo<Key, Value>,
|
||||
ReadKeyValuesRepo<Key, Value> by KtorReadOneToManyKeyValueRepo<Key, Value> (
|
||||
"$baseUrl/$baseSubpart",
|
||||
unifiedRequester,
|
||||
keySerializer,
|
||||
valueSerializer,
|
||||
),
|
||||
WriteOneToManyKeyValueRepo<Key, Value> by KtorWriteOneToManyKeyValueRepo<Key, Value> (
|
||||
WriteKeyValuesRepo<Key, Value> by KtorWriteOneToManyKeyValueRepo<Key, Value> (
|
||||
"$baseUrl/$baseSubpart",
|
||||
unifiedRequester,
|
||||
keySerializer,
|
||||
@@ -34,4 +35,4 @@ class KtorOneToManyKeyValueRepo<Key, Value>(
|
||||
valueSerializer: KSerializer<Value>,
|
||||
serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat
|
||||
) : this (baseUrl, baseSubpart, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,9 +2,8 @@ package dev.inmo.micro_utils.repos.ktor.client.one_to_many
|
||||
|
||||
import dev.inmo.micro_utils.ktor.common.*
|
||||
import dev.inmo.micro_utils.pagination.*
|
||||
import dev.inmo.micro_utils.repos.ReadOneToManyKeyValueRepo
|
||||
import dev.inmo.micro_utils.repos.ReadKeyValuesRepo
|
||||
import dev.inmo.micro_utils.repos.ktor.common.*
|
||||
import dev.inmo.micro_utils.repos.ktor.common.crud.*
|
||||
import dev.inmo.micro_utils.repos.ktor.common.one_to_many.*
|
||||
import dev.inmo.micro_utils.repos.ktor.common.reversedParameterName
|
||||
import io.ktor.client.HttpClient
|
||||
@@ -15,7 +14,7 @@ import io.ktor.util.reflect.TypeInfo
|
||||
import io.ktor.util.reflect.typeInfo
|
||||
import kotlinx.serialization.*
|
||||
|
||||
class KtorReadStandardKeyValuesRepoClient<Key, Value>(
|
||||
class KtorReadKeyValuesRepoClient<Key, Value>(
|
||||
private val baseUrl: String,
|
||||
private val httpClient: HttpClient,
|
||||
private val contentType: ContentType,
|
||||
@@ -23,7 +22,7 @@ class KtorReadStandardKeyValuesRepoClient<Key, Value>(
|
||||
private val paginationResultKeysTypeInfo: TypeInfo,
|
||||
private val keySerializer: suspend (Key) -> String,
|
||||
private val valueSerializer: suspend (Value) -> String
|
||||
) : ReadOneToManyKeyValueRepo<Key, Value> {
|
||||
) : ReadKeyValuesRepo<Key, Value> {
|
||||
override suspend fun get(
|
||||
k: Key,
|
||||
pagination: Pagination,
|
||||
@@ -106,13 +105,13 @@ class KtorReadStandardKeyValuesRepoClient<Key, Value>(
|
||||
}.body()
|
||||
}
|
||||
|
||||
inline fun <reified Key, reified Value> KtorReadStandardKeyValuesRepoClient(
|
||||
inline fun <reified Key, reified Value> KtorReadKeyValuesRepoClient(
|
||||
baseUrl: String,
|
||||
httpClient: HttpClient,
|
||||
contentType: ContentType,
|
||||
noinline keySerializer: suspend (Key) -> String,
|
||||
noinline valueSerializer: suspend (Value) -> String
|
||||
) = KtorReadStandardKeyValuesRepoClient<Key, Value>(
|
||||
) = KtorReadKeyValuesRepoClient<Key, Value>(
|
||||
baseUrl,
|
||||
httpClient,
|
||||
contentType,
|
||||
@@ -122,14 +121,14 @@ inline fun <reified Key, reified Value> KtorReadStandardKeyValuesRepoClient(
|
||||
valueSerializer
|
||||
)
|
||||
|
||||
inline fun <reified Key, reified Value> KtorReadStandardKeyValuesRepoClient(
|
||||
inline fun <reified Key, reified Value> KtorReadKeyValuesRepoClient(
|
||||
baseUrl: String,
|
||||
httpClient: HttpClient,
|
||||
idsSerializer: KSerializer<Key>,
|
||||
valueSerializer: KSerializer<Value>,
|
||||
serialFormat: StringFormat,
|
||||
contentType: ContentType,
|
||||
) = KtorReadStandardKeyValuesRepoClient<Key, Value>(
|
||||
) = KtorReadKeyValuesRepoClient<Key, Value>(
|
||||
baseUrl,
|
||||
httpClient,
|
||||
contentType,
|
||||
@@ -140,14 +139,14 @@ inline fun <reified Key, reified Value> KtorReadStandardKeyValuesRepoClient(
|
||||
serialFormat.encodeToString(valueSerializer, it).encodeURLQueryComponent()
|
||||
}
|
||||
|
||||
inline fun <reified Key, reified Value> KtorReadStandardKeyValuesRepoClient(
|
||||
inline fun <reified Key, reified Value> KtorReadKeyValuesRepoClient(
|
||||
baseUrl: String,
|
||||
httpClient: HttpClient,
|
||||
idsSerializer: KSerializer<Key>,
|
||||
valuesSerializer: KSerializer<Value>,
|
||||
serialFormat: BinaryFormat,
|
||||
contentType: ContentType,
|
||||
) = KtorReadStandardKeyValuesRepoClient<Key, Value>(
|
||||
) = KtorReadKeyValuesRepoClient<Key, Value>(
|
||||
baseUrl,
|
||||
httpClient,
|
||||
contentType,
|
||||
@@ -3,7 +3,7 @@ package dev.inmo.micro_utils.repos.ktor.client.one_to_many
|
||||
import dev.inmo.micro_utils.ktor.client.*
|
||||
import dev.inmo.micro_utils.ktor.common.*
|
||||
import dev.inmo.micro_utils.pagination.*
|
||||
import dev.inmo.micro_utils.repos.ReadOneToManyKeyValueRepo
|
||||
import dev.inmo.micro_utils.repos.ReadKeyValuesRepo
|
||||
import dev.inmo.micro_utils.repos.ktor.common.keyParameterName
|
||||
import dev.inmo.micro_utils.repos.ktor.common.one_to_many.*
|
||||
import dev.inmo.micro_utils.repos.ktor.common.reversedParameterName
|
||||
@@ -12,12 +12,13 @@ import io.ktor.client.HttpClient
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.builtins.serializer
|
||||
|
||||
@Deprecated("Should be replaced with KtorReadKeyValuesRepoClient")
|
||||
class KtorReadOneToManyKeyValueRepo<Key, Value> (
|
||||
private val baseUrl: String,
|
||||
private val unifiedRequester: UnifiedRequester,
|
||||
private val keySerializer: KSerializer<Key>,
|
||||
private val valueSerializer: KSerializer<Value>
|
||||
) : ReadOneToManyKeyValueRepo<Key, Value> {
|
||||
) : ReadKeyValuesRepo<Key, Value> {
|
||||
private val paginationValueResultSerializer = PaginationResult.serializer(valueSerializer)
|
||||
private val paginationKeyResultSerializer = PaginationResult.serializer(keySerializer)
|
||||
|
||||
@@ -104,4 +105,4 @@ class KtorReadOneToManyKeyValueRepo<Key, Value> (
|
||||
Long.serializer()
|
||||
)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package dev.inmo.micro_utils.repos.ktor.client.one_to_many
|
||||
import dev.inmo.micro_utils.ktor.client.createStandardWebsocketFlow
|
||||
import dev.inmo.micro_utils.ktor.client.throwOnUnsuccess
|
||||
import dev.inmo.micro_utils.ktor.common.*
|
||||
import dev.inmo.micro_utils.repos.WriteOneToManyKeyValueRepo
|
||||
import dev.inmo.micro_utils.repos.WriteKeyValuesRepo
|
||||
import dev.inmo.micro_utils.repos.ktor.common.one_to_many.*
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.request.post
|
||||
@@ -13,7 +13,7 @@ import io.ktor.util.reflect.TypeInfo
|
||||
import io.ktor.util.reflect.typeInfo
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
class KtorWriteStandardKeyValuesRepoClient<Key : Any, Value : Any>(
|
||||
class KtorWriteKeyValuesRepoClient<Key : Any, Value : Any>(
|
||||
private val baseUrl: String,
|
||||
private val httpClient: HttpClient,
|
||||
private val contentType: ContentType,
|
||||
@@ -23,7 +23,7 @@ class KtorWriteStandardKeyValuesRepoClient<Key : Any, Value : Any>(
|
||||
private val keyTypeInfo: TypeInfo,
|
||||
private val valueTypeInfo: TypeInfo,
|
||||
private val keyToValuesMapTypeInfo: TypeInfo
|
||||
) : WriteOneToManyKeyValueRepo<Key, Value> {
|
||||
) : WriteKeyValuesRepo<Key, Value> {
|
||||
|
||||
@OptIn(InternalAPI::class)
|
||||
override suspend fun add(toAdd: Map<Key, List<Value>>) {
|
||||
@@ -85,7 +85,7 @@ class KtorWriteStandardKeyValuesRepoClient<Key : Any, Value : Any>(
|
||||
baseUrl: String,
|
||||
httpClient: HttpClient,
|
||||
contentType: ContentType
|
||||
) = KtorWriteStandardKeyValuesRepoClient<Key, Value>(
|
||||
) = KtorWriteKeyValuesRepoClient<Key, Value>(
|
||||
baseUrl,
|
||||
httpClient,
|
||||
contentType,
|
||||
@@ -2,19 +2,20 @@ package dev.inmo.micro_utils.repos.ktor.client.one_to_many
|
||||
|
||||
import dev.inmo.micro_utils.ktor.client.*
|
||||
import dev.inmo.micro_utils.ktor.common.*
|
||||
import dev.inmo.micro_utils.repos.WriteOneToManyKeyValueRepo
|
||||
import dev.inmo.micro_utils.repos.WriteKeyValuesRepo
|
||||
import dev.inmo.micro_utils.repos.ktor.common.one_to_many.*
|
||||
import io.ktor.client.HttpClient
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.builtins.*
|
||||
|
||||
@Deprecated("Should be replaced with KtorWriteKeyValuesRepoClient")
|
||||
class KtorWriteOneToManyKeyValueRepo<Key, Value> (
|
||||
private val baseUrl: String,
|
||||
private val unifiedRequester: UnifiedRequester,
|
||||
private val keySerializer: KSerializer<Key>,
|
||||
private val valueSerializer: KSerializer<Value>
|
||||
) : WriteOneToManyKeyValueRepo<Key, Value> {
|
||||
) : WriteKeyValuesRepo<Key, Value> {
|
||||
private val keyValueSerializer = PairSerializer(keySerializer, valueSerializer)
|
||||
private val keyValueMapSerializer = MapSerializer(keySerializer, ListSerializer(valueSerializer))
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import dev.inmo.micro_utils.pagination.firstPageWithOneElementPagination
|
||||
import dev.inmo.micro_utils.pagination.utils.getAllWithNextPaging
|
||||
import dev.inmo.micro_utils.repos.*
|
||||
import dev.inmo.micro_utils.repos.ktor.client.one_to_many.KtorStandardKeyValuesRepoClient
|
||||
import dev.inmo.micro_utils.repos.ktor.server.one_to_many.configureStandardKeyValuesRepoRoutes
|
||||
import dev.inmo.micro_utils.repos.ktor.client.one_to_many.KtorKeyValuesRepoClient
|
||||
import dev.inmo.micro_utils.repos.ktor.server.one_to_many.configureKeyValuesRepoRoutes
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.plugins.logging.Logging
|
||||
import io.ktor.http.ContentType
|
||||
@@ -25,7 +25,7 @@ class KVsTests {
|
||||
fun testKVsFunctions() {
|
||||
runTest {
|
||||
val map = mutableMapOf<Int, MutableList<ComplexData>>()
|
||||
val repo = MapOneToManyKeyValueRepo(map)
|
||||
val repo = MapKeyValuesRepo(map)
|
||||
val server = io.ktor.server.engine.embeddedServer(
|
||||
CIO,
|
||||
23456,
|
||||
@@ -38,7 +38,7 @@ class KVsTests {
|
||||
contentConverter = KotlinxWebsocketSerializationConverter(Json)
|
||||
}
|
||||
routing {
|
||||
configureStandardKeyValuesRepoRoutes(
|
||||
configureKeyValuesRepoRoutes(
|
||||
repo,
|
||||
Int.serializer(),
|
||||
ComplexData.serializer(),
|
||||
@@ -55,7 +55,7 @@ class KVsTests {
|
||||
contentConverter = KotlinxWebsocketSerializationConverter(Json)
|
||||
}
|
||||
}
|
||||
val crudClient = KtorStandardKeyValuesRepoClient(
|
||||
val crudClient = KtorKeyValuesRepoClient(
|
||||
"http://127.0.0.1:23456",
|
||||
client,
|
||||
ContentType.Application.Json,
|
||||
|
||||
@@ -4,7 +4,7 @@ import dev.inmo.micro_utils.ktor.common.StandardKtorSerialFormat
|
||||
import dev.inmo.micro_utils.ktor.common.standardKtorSerialFormat
|
||||
import dev.inmo.micro_utils.ktor.server.UnifiedRouter
|
||||
import dev.inmo.micro_utils.ktor.server.standardKtorSerialFormatContentType
|
||||
import dev.inmo.micro_utils.repos.OneToManyKeyValueRepo
|
||||
import dev.inmo.micro_utils.repos.KeyValuesRepo
|
||||
import io.ktor.http.ContentType
|
||||
import io.ktor.server.routing.Route
|
||||
import io.ktor.server.routing.route
|
||||
@@ -12,7 +12,7 @@ import kotlinx.serialization.KSerializer
|
||||
|
||||
fun <Key, Value> Route.configureOneToManyKeyValueRepoRoutes(
|
||||
baseSubpart: String,
|
||||
originalRepo: OneToManyKeyValueRepo<Key, Value>,
|
||||
originalRepo: KeyValuesRepo<Key, Value>,
|
||||
keySerializer: KSerializer<Key>,
|
||||
valueSerializer: KSerializer<Value>,
|
||||
unifiedRouter: UnifiedRouter
|
||||
@@ -25,7 +25,7 @@ fun <Key, Value> Route.configureOneToManyKeyValueRepoRoutes(
|
||||
|
||||
fun <Key, Value> Route.configureOneToManyKeyValueRepoRoutes(
|
||||
baseSubpart: String,
|
||||
originalRepo: OneToManyKeyValueRepo<Key, Value>,
|
||||
originalRepo: KeyValuesRepo<Key, Value>,
|
||||
keySerializer: KSerializer<Key>,
|
||||
valueSerializer: KSerializer<Value>,
|
||||
serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat,
|
||||
|
||||
@@ -5,7 +5,7 @@ import dev.inmo.micro_utils.ktor.common.standardKtorSerialFormat
|
||||
import dev.inmo.micro_utils.ktor.server.*
|
||||
import dev.inmo.micro_utils.pagination.PaginationResult
|
||||
import dev.inmo.micro_utils.pagination.extractPagination
|
||||
import dev.inmo.micro_utils.repos.ReadOneToManyKeyValueRepo
|
||||
import dev.inmo.micro_utils.repos.ReadKeyValuesRepo
|
||||
import dev.inmo.micro_utils.repos.ktor.common.keyParameterName
|
||||
import dev.inmo.micro_utils.repos.ktor.common.one_to_many.*
|
||||
import dev.inmo.micro_utils.repos.ktor.common.valueParameterName
|
||||
@@ -18,7 +18,7 @@ import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.builtins.serializer
|
||||
|
||||
fun <Key, Value> Route.configureOneToManyReadKeyValueRepoRoutes(
|
||||
originalRepo: ReadOneToManyKeyValueRepo<Key, Value>,
|
||||
originalRepo: ReadKeyValuesRepo<Key, Value>,
|
||||
keySerializer: KSerializer<Key>,
|
||||
valueSerializer: KSerializer<Value>,
|
||||
unifiedRouter: UnifiedRouter
|
||||
@@ -121,7 +121,7 @@ fun <Key, Value> Route.configureOneToManyReadKeyValueRepoRoutes(
|
||||
}
|
||||
|
||||
inline fun <Key, Value> Route.configureOneToManyReadKeyValueRepoRoutes(
|
||||
originalRepo: ReadOneToManyKeyValueRepo<Key, Value>,
|
||||
originalRepo: ReadKeyValuesRepo<Key, Value>,
|
||||
keySerializer: KSerializer<Key>,
|
||||
valueSerializer: KSerializer<Value>,
|
||||
serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat,
|
||||
|
||||
@@ -3,7 +3,7 @@ package dev.inmo.micro_utils.repos.ktor.server.one_to_many
|
||||
import dev.inmo.micro_utils.ktor.common.StandardKtorSerialFormat
|
||||
import dev.inmo.micro_utils.ktor.common.standardKtorSerialFormat
|
||||
import dev.inmo.micro_utils.ktor.server.*
|
||||
import dev.inmo.micro_utils.repos.WriteOneToManyKeyValueRepo
|
||||
import dev.inmo.micro_utils.repos.WriteKeyValuesRepo
|
||||
import dev.inmo.micro_utils.repos.ktor.common.one_to_many.*
|
||||
import io.ktor.http.ContentType
|
||||
import io.ktor.server.routing.Route
|
||||
@@ -12,7 +12,7 @@ import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.builtins.*
|
||||
|
||||
fun <Key, Value> Route.configureOneToManyWriteKeyValueRepoRoutes(
|
||||
originalRepo: WriteOneToManyKeyValueRepo<Key, Value>,
|
||||
originalRepo: WriteKeyValuesRepo<Key, Value>,
|
||||
keySerializer: KSerializer<Key>,
|
||||
valueSerializer: KSerializer<Value>,
|
||||
unifiedRouter: UnifiedRouter
|
||||
@@ -95,7 +95,7 @@ fun <Key, Value> Route.configureOneToManyWriteKeyValueRepoRoutes(
|
||||
}
|
||||
|
||||
fun <Key, Value> Route.configureOneToManyWriteKeyValueRepoRoutes(
|
||||
originalRepo: WriteOneToManyKeyValueRepo<Key, Value>,
|
||||
originalRepo: WriteKeyValuesRepo<Key, Value>,
|
||||
keySerializer: KSerializer<Key>,
|
||||
valueSerializer: KSerializer<Value>,
|
||||
serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat,
|
||||
|
||||
@@ -6,21 +6,21 @@ import io.ktor.http.*
|
||||
import io.ktor.server.routing.Route
|
||||
import kotlinx.serialization.*
|
||||
|
||||
inline fun <reified Key : Any, reified Value : Any> Route.configureStandardKeyValuesRepoRoutes (
|
||||
originalRepo: OneToManyKeyValueRepo<Key, Value>,
|
||||
inline fun <reified Key : Any, reified Value : Any> Route.configureKeyValuesRepoRoutes (
|
||||
originalRepo: KeyValuesRepo<Key, Value>,
|
||||
noinline idDeserializer: suspend (String) -> Key,
|
||||
noinline valueDeserializer: suspend (String) -> Value
|
||||
) {
|
||||
configureReadStandardKeyValuesRepoRoutes(originalRepo, idDeserializer, valueDeserializer)
|
||||
configureWriteStandardKeyValuesRepoRoutes(originalRepo)
|
||||
configureReadKeyValuesRepoRoutes(originalRepo, idDeserializer, valueDeserializer)
|
||||
configureWriteKeyValuesRepoRoutes(originalRepo)
|
||||
}
|
||||
|
||||
inline fun <reified Key : Any, reified Value : Any> Route.configureStandardKeyValuesRepoRoutes(
|
||||
originalRepo: OneToManyKeyValueRepo<Key, Value>,
|
||||
inline fun <reified Key : Any, reified Value : Any> Route.configureKeyValuesRepoRoutes(
|
||||
originalRepo: KeyValuesRepo<Key, Value>,
|
||||
idsSerializer: DeserializationStrategy<Key>,
|
||||
valueSerializer: DeserializationStrategy<Value>,
|
||||
serialFormat: StringFormat
|
||||
) = configureStandardKeyValuesRepoRoutes(
|
||||
) = configureKeyValuesRepoRoutes(
|
||||
originalRepo,
|
||||
{
|
||||
serialFormat.decodeFromString(idsSerializer, it.decodeURLQueryComponent())
|
||||
@@ -30,12 +30,12 @@ inline fun <reified Key : Any, reified Value : Any> Route.configureStandardKeyVa
|
||||
}
|
||||
)
|
||||
|
||||
inline fun <reified Key : Any, reified Value : Any> Route.configureStandardKeyValuesRepoRoutes(
|
||||
originalRepo: OneToManyKeyValueRepo<Key, Value>,
|
||||
inline fun <reified Key : Any, reified Value : Any> Route.configureKeyValuesRepoRoutes(
|
||||
originalRepo: KeyValuesRepo<Key, Value>,
|
||||
idsSerializer: DeserializationStrategy<Key>,
|
||||
valueSerializer: DeserializationStrategy<Value>,
|
||||
serialFormat: BinaryFormat
|
||||
) = configureStandardKeyValuesRepoRoutes(
|
||||
) = configureKeyValuesRepoRoutes(
|
||||
originalRepo,
|
||||
{
|
||||
serialFormat.decodeHex(idsSerializer, it)
|
||||
@@ -4,7 +4,7 @@ import dev.inmo.micro_utils.ktor.common.*
|
||||
import dev.inmo.micro_utils.ktor.server.*
|
||||
import dev.inmo.micro_utils.pagination.PaginationResult
|
||||
import dev.inmo.micro_utils.pagination.extractPagination
|
||||
import dev.inmo.micro_utils.repos.ReadOneToManyKeyValueRepo
|
||||
import dev.inmo.micro_utils.repos.ReadKeyValuesRepo
|
||||
import dev.inmo.micro_utils.repos.ktor.common.*
|
||||
import dev.inmo.micro_utils.repos.ktor.common.containsRoute
|
||||
import dev.inmo.micro_utils.repos.ktor.common.one_to_many.*
|
||||
@@ -18,8 +18,8 @@ import io.ktor.util.reflect.typeInfo
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@OptIn(InternalAPI::class)
|
||||
inline fun <reified Key, reified Value> Route.configureReadStandardKeyValuesRepoRoutes (
|
||||
originalRepo: ReadOneToManyKeyValueRepo<Key, Value>,
|
||||
inline fun <reified Key, reified Value> Route.configureReadKeyValuesRepoRoutes (
|
||||
originalRepo: ReadKeyValuesRepo<Key, Value>,
|
||||
noinline idDeserializer: suspend (String) -> Key,
|
||||
noinline valueDeserializer: suspend (String) -> Value
|
||||
) {
|
||||
@@ -75,12 +75,12 @@ inline fun <reified Key, reified Value> Route.configureReadStandardKeyValuesRepo
|
||||
}
|
||||
}
|
||||
|
||||
inline fun <reified Key, reified Value> Route.configureReadStandardKeyValuesRepoRoutes(
|
||||
originalRepo: ReadOneToManyKeyValueRepo<Key, Value>,
|
||||
inline fun <reified Key, reified Value> Route.configureReadKeyValuesRepoRoutes(
|
||||
originalRepo: ReadKeyValuesRepo<Key, Value>,
|
||||
idsSerializer: DeserializationStrategy<Key>,
|
||||
valueSerializer: DeserializationStrategy<Value>,
|
||||
serialFormat: StringFormat
|
||||
) = configureReadStandardKeyValuesRepoRoutes(
|
||||
) = configureReadKeyValuesRepoRoutes(
|
||||
originalRepo,
|
||||
{
|
||||
serialFormat.decodeFromString(idsSerializer, it.decodeURLQueryComponent())
|
||||
@@ -90,12 +90,12 @@ inline fun <reified Key, reified Value> Route.configureReadStandardKeyValuesRepo
|
||||
}
|
||||
)
|
||||
|
||||
inline fun <reified Key, reified Value> Route.configureReadStandardKeyValuesRepoRoutes(
|
||||
originalRepo: ReadOneToManyKeyValueRepo<Key, Value>,
|
||||
inline fun <reified Key, reified Value> Route.configureReadKeyValuesRepoRoutes(
|
||||
originalRepo: ReadKeyValuesRepo<Key, Value>,
|
||||
idsSerializer: DeserializationStrategy<Key>,
|
||||
valueSerializer: DeserializationStrategy<Value>,
|
||||
serialFormat: BinaryFormat
|
||||
) = configureReadStandardKeyValuesRepoRoutes(
|
||||
) = configureReadKeyValuesRepoRoutes(
|
||||
originalRepo,
|
||||
{
|
||||
serialFormat.decodeHex(idsSerializer, it)
|
||||
@@ -1,7 +1,7 @@
|
||||
package dev.inmo.micro_utils.repos.ktor.server.one_to_many
|
||||
|
||||
import dev.inmo.micro_utils.ktor.server.*
|
||||
import dev.inmo.micro_utils.repos.WriteOneToManyKeyValueRepo
|
||||
import dev.inmo.micro_utils.repos.WriteKeyValuesRepo
|
||||
import dev.inmo.micro_utils.repos.ktor.common.one_to_many.*
|
||||
import io.ktor.http.HttpStatusCode
|
||||
import io.ktor.server.application.call
|
||||
@@ -11,8 +11,8 @@ import io.ktor.server.routing.Route
|
||||
import io.ktor.server.routing.post
|
||||
import io.ktor.util.reflect.typeInfo
|
||||
|
||||
inline fun <reified Key : Any, reified Value : Any> Route.configureWriteStandardKeyValuesRepoRoutes (
|
||||
originalRepo: WriteOneToManyKeyValueRepo<Key, Value>
|
||||
inline fun <reified Key : Any, reified Value : Any> Route.configureWriteKeyValuesRepoRoutes (
|
||||
originalRepo: WriteKeyValuesRepo<Key, Value>
|
||||
) {
|
||||
includeWebsocketHandling(
|
||||
onNewValueRoute,
|
||||
Reference in New Issue
Block a user