diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KeyValueCacheRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KeyValueCacheRepo.kt index ad1e24ab696..79ae1392d1b 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KeyValueCacheRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KeyValueCacheRepo.kt @@ -4,8 +4,6 @@ import dev.inmo.micro_utils.repos.* import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.* -import kotlinx.coroutines.sync.Mutex -import kotlinx.coroutines.sync.withLock open class ReadKeyValueCacheRepo( protected val parentRepo: ReadKeyValueRepo, diff --git a/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/StandartKeyValueRepo.kt b/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/StandartKeyValueRepo.kt index b224d8caebf..8ffe9094719 100644 --- a/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/StandartKeyValueRepo.kt +++ b/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/StandartKeyValueRepo.kt @@ -4,7 +4,7 @@ import dev.inmo.micro_utils.pagination.* import dev.inmo.micro_utils.pagination.utils.doAllWithCurrentPaging import kotlinx.coroutines.flow.Flow -interface ReadStandardKeyValueRepo : Repo { +interface ReadKeyValueRepo : Repo { suspend fun get(k: Key): Value? suspend fun values(pagination: Pagination, reversed: Boolean = false): PaginationResult suspend fun keys(pagination: Pagination, reversed: Boolean = false): PaginationResult @@ -12,9 +12,9 @@ interface ReadStandardKeyValueRepo : Repo { suspend fun contains(key: Key): Boolean suspend fun count(): Long } -typealias ReadKeyValueRepo = ReadStandardKeyValueRepo +typealias ReadStandardKeyValueRepo = ReadKeyValueRepo -interface WriteStandardKeyValueRepo : Repo { +interface WriteKeyValueRepo : Repo { val onNewValue: Flow> val onValueRemoved: Flow @@ -22,25 +22,25 @@ interface WriteStandardKeyValueRepo : Repo { suspend fun unset(toUnset: List) suspend fun unsetWithValues(toUnset: List) } -typealias WriteKeyValueRepo = WriteStandardKeyValueRepo +typealias WriteStandardKeyValueRepo = WriteKeyValueRepo -suspend inline fun WriteStandardKeyValueRepo.set( +suspend inline fun WriteKeyValueRepo.set( vararg toSet: Pair ) = set(toSet.toMap()) -suspend inline fun WriteStandardKeyValueRepo.set( +suspend inline fun WriteKeyValueRepo.set( k: Key, v: Value ) = set(k to v) -suspend inline fun WriteStandardKeyValueRepo.unset( +suspend inline fun WriteKeyValueRepo.unset( vararg k: Key ) = unset(k.toList()) -suspend inline fun WriteStandardKeyValueRepo.unsetWithValues( +suspend inline fun WriteKeyValueRepo.unsetWithValues( vararg v: Value ) = unsetWithValues(v.toList()) -interface StandardKeyValueRepo : ReadStandardKeyValueRepo, WriteStandardKeyValueRepo { +interface KeyValueRepo : ReadKeyValueRepo, WriteKeyValueRepo { override suspend fun unsetWithValues(toUnset: List) = toUnset.forEach { v -> doAllWithCurrentPaging { keys(v, it).also { @@ -49,11 +49,11 @@ interface StandardKeyValueRepo : ReadStandardKeyValueRepo = StandardKeyValueRepo +typealias StandardKeyValueRepo = KeyValueRepo -class DelegateBasedStandardKeyValueRepo( - readDelegate: ReadStandardKeyValueRepo, - writeDelegate: WriteStandardKeyValueRepo -) : StandardKeyValueRepo, - ReadStandardKeyValueRepo by readDelegate, - WriteStandardKeyValueRepo by writeDelegate +class DelegateBasedKeyValueRepo( + readDelegate: ReadKeyValueRepo, + writeDelegate: WriteKeyValueRepo +) : KeyValueRepo, + ReadKeyValueRepo by readDelegate, + WriteKeyValueRepo by writeDelegate diff --git a/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/mappers/KeyValueMappers.kt b/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/mappers/KeyValueMappers.kt index 3644852d713..23955920fe8 100644 --- a/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/mappers/KeyValueMappers.kt +++ b/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/mappers/KeyValueMappers.kt @@ -6,10 +6,12 @@ import dev.inmo.micro_utils.repos.* import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map -open class MapperReadStandardKeyValueRepo( - private val to: ReadStandardKeyValueRepo, +@Deprecated("Renamed", ReplaceWith("MapperReadKeyValueRepo", "dev.inmo.micro_utils.repos.mappers.MapperReadKeyValueRepo")) +typealias MapperReadStandardKeyValueRepo = MapperReadKeyValueRepo +open class MapperReadKeyValueRepo( + private val to: ReadKeyValueRepo, mapper: MapperRepo -) : ReadStandardKeyValueRepo, MapperRepo by mapper { +) : ReadKeyValueRepo, MapperRepo by mapper { override suspend fun get(k: FromKey): FromValue? = to.get( k.toOutKey() ) ?.toInnerValue() @@ -69,24 +71,26 @@ open class MapperReadStandardKeyValueRepo( } @Suppress("NOTHING_TO_INLINE") -inline fun ReadStandardKeyValueRepo.withMapper( +inline fun ReadKeyValueRepo.withMapper( mapper: MapperRepo -): ReadStandardKeyValueRepo = MapperReadStandardKeyValueRepo(this, mapper) +): ReadKeyValueRepo = MapperReadKeyValueRepo(this, mapper) @Suppress("NOTHING_TO_INLINE") -inline fun ReadStandardKeyValueRepo.withMapper( +inline fun ReadKeyValueRepo.withMapper( crossinline keyFromToTo: suspend FromKey.() -> ToKey = { this as ToKey }, crossinline valueFromToTo: suspend FromValue.() -> ToValue = { this as ToValue }, crossinline keyToToFrom: suspend ToKey.() -> FromKey = { this as FromKey }, crossinline valueToToFrom: suspend ToValue.() -> FromValue = { this as FromValue }, -): ReadStandardKeyValueRepo = withMapper( +): ReadKeyValueRepo = withMapper( mapper(keyFromToTo, valueFromToTo, keyToToFrom, valueToToFrom) ) -open class MapperWriteStandardKeyValueRepo( - private val to: WriteStandardKeyValueRepo, +@Deprecated("Renamed", ReplaceWith("MapperWriteKeyValueRepo", "dev.inmo.micro_utils.repos.mappers.MapperWriteKeyValueRepo")) +typealias MapperWriteStandardKeyValueRepo = MapperWriteKeyValueRepo +open class MapperWriteKeyValueRepo( + private val to: WriteKeyValueRepo, mapper: MapperRepo -) : WriteStandardKeyValueRepo, MapperRepo by mapper { +) : WriteKeyValueRepo, MapperRepo by mapper { override val onNewValue: Flow> = to.onNewValue.map { (k, v) -> k.toInnerKey() to v.toInnerValue() } @@ -112,40 +116,42 @@ open class MapperWriteStandardKeyValueRepo( } @Suppress("NOTHING_TO_INLINE") -inline fun WriteStandardKeyValueRepo.withMapper( +inline fun WriteKeyValueRepo.withMapper( mapper: MapperRepo -): WriteStandardKeyValueRepo = MapperWriteStandardKeyValueRepo(this, mapper) +): WriteKeyValueRepo = MapperWriteKeyValueRepo(this, mapper) @Suppress("NOTHING_TO_INLINE") -inline fun WriteStandardKeyValueRepo.withMapper( +inline fun WriteKeyValueRepo.withMapper( crossinline keyFromToTo: suspend FromKey.() -> ToKey = { this as ToKey }, crossinline valueFromToTo: suspend FromValue.() -> ToValue = { this as ToValue }, crossinline keyToToFrom: suspend ToKey.() -> FromKey = { this as FromKey }, crossinline valueToToFrom: suspend ToValue.() -> FromValue = { this as FromValue }, -): WriteStandardKeyValueRepo = withMapper( +): WriteKeyValueRepo = withMapper( mapper(keyFromToTo, valueFromToTo, keyToToFrom, valueToToFrom) ) +@Deprecated("Renamed", ReplaceWith("MapperKeyValueRepo", "dev.inmo.micro_utils.repos.mappers.MapperKeyValueRepo")) +typealias MapperStandardKeyValueRepo = MapperKeyValueRepo @Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE") -open class MapperStandardKeyValueRepo( - private val to: StandardKeyValueRepo, +open class MapperKeyValueRepo( + private val to: KeyValueRepo, private val mapper: MapperRepo -) : StandardKeyValueRepo, +) : KeyValueRepo, MapperRepo by mapper, - ReadStandardKeyValueRepo by MapperReadStandardKeyValueRepo(to, mapper), - WriteStandardKeyValueRepo by MapperWriteStandardKeyValueRepo(to, mapper) + ReadKeyValueRepo by MapperReadKeyValueRepo(to, mapper), + WriteKeyValueRepo by MapperWriteKeyValueRepo(to, mapper) @Suppress("NOTHING_TO_INLINE") -inline fun StandardKeyValueRepo.withMapper( +inline fun KeyValueRepo.withMapper( mapper: MapperRepo -): StandardKeyValueRepo = MapperStandardKeyValueRepo(this, mapper) +): KeyValueRepo = MapperKeyValueRepo(this, mapper) @Suppress("NOTHING_TO_INLINE") -inline fun StandardKeyValueRepo.withMapper( +inline fun KeyValueRepo.withMapper( crossinline keyFromToTo: suspend FromKey.() -> ToKey = { this as ToKey }, crossinline valueFromToTo: suspend FromValue.() -> ToValue = { this as ToValue }, crossinline keyToToFrom: suspend ToKey.() -> FromKey = { this as FromKey }, crossinline valueToToFrom: suspend ToValue.() -> FromValue = { this as FromValue }, -): StandardKeyValueRepo = withMapper( +): KeyValueRepo = withMapper( mapper(keyFromToTo, valueFromToTo, keyToToFrom, valueToToFrom) ) diff --git a/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/pagination/KeyValuePaginationExtensions.kt b/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/pagination/KeyValuePaginationExtensions.kt index abf462ff4e6..14fe3068416 100644 --- a/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/pagination/KeyValuePaginationExtensions.kt +++ b/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/pagination/KeyValuePaginationExtensions.kt @@ -2,9 +2,9 @@ package dev.inmo.micro_utils.repos.pagination import dev.inmo.micro_utils.pagination.* import dev.inmo.micro_utils.pagination.utils.getAllWithNextPaging -import dev.inmo.micro_utils.repos.ReadStandardKeyValueRepo +import dev.inmo.micro_utils.repos.ReadKeyValueRepo -suspend inline fun > REPO.getAll( +suspend inline fun > REPO.getAll( @Suppress("REDUNDANT_INLINE_SUSPEND_FUNCTION_TYPE") crossinline methodCaller: suspend REPO.(Pagination) -> PaginationResult ): List> = getAllWithNextPaging { diff --git a/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/versions/KeyValueBasedVersionsRepoProxy.kt b/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/versions/KeyValueBasedVersionsRepoProxy.kt index 5d7e3435670..1e467685b6e 100644 --- a/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/versions/KeyValueBasedVersionsRepoProxy.kt +++ b/repos/common/src/commonMain/kotlin/dev/inmo/micro_utils/repos/versions/KeyValueBasedVersionsRepoProxy.kt @@ -1,10 +1,10 @@ package dev.inmo.micro_utils.repos.versions -import dev.inmo.micro_utils.repos.StandardKeyValueRepo +import dev.inmo.micro_utils.repos.KeyValueRepo import dev.inmo.micro_utils.repos.set class KeyValueBasedVersionsRepoProxy( - private val keyValueStore: StandardKeyValueRepo, + private val keyValueStore: KeyValueRepo, override val database: T ) : StandardVersionsRepoProxy { override suspend fun getTableVersion(tableName: String): Int? = keyValueStore.get(tableName) diff --git a/repos/common/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/FileStandardKeyValueRepo.kt b/repos/common/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/FileKeyValueRepo.kt similarity index 87% rename from repos/common/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/FileStandardKeyValueRepo.kt rename to repos/common/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/FileKeyValueRepo.kt index 5e93cfc10e6..2b9d9163ff7 100644 --- a/repos/common/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/FileStandardKeyValueRepo.kt +++ b/repos/common/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/FileKeyValueRepo.kt @@ -13,9 +13,12 @@ import java.nio.file.StandardWatchEventKinds.* private inline val String.isAbsolute get() = startsWith(File.separator) -class FileReadStandardKeyValueRepo( +@Deprecated("Renamed", ReplaceWith("FileReadKeyValueRepo", "dev.inmo.micro_utils.repos.FileReadKeyValueRepo")) +typealias FileReadStandardKeyValueRepo = FileReadKeyValueRepo + +class FileReadKeyValueRepo( private val folder: File -) : ReadStandardKeyValueRepo { +) : ReadKeyValueRepo { init { folder.mkdirs() } @@ -79,14 +82,17 @@ class FileReadStandardKeyValueRepo( override suspend fun count(): Long = folder.list() ?.size ?.toLong() ?: 0L } +@Deprecated("Renamed", ReplaceWith("FileWriteKeyValueRepo", "dev.inmo.micro_utils.repos.FileWriteKeyValueRepo")) +typealias FileWriteStandardKeyValueRepo = FileWriteKeyValueRepo + /** * Files watching will not correctly works on Android with version of API lower than API 26 */ @Warning("Files watching will not correctly works on Android Platform with version of API lower than API 26") -class FileWriteStandardKeyValueRepo( +class FileWriteKeyValueRepo( private val folder: File, filesChangedProcessingScope: CoroutineScope? = null -) : WriteStandardKeyValueRepo { +) : WriteKeyValueRepo { private val _onNewValue = MutableSharedFlow>() override val onNewValue: Flow> = _onNewValue.asSharedFlow() private val _onValueRemoved = MutableSharedFlow() @@ -174,12 +180,15 @@ class FileWriteStandardKeyValueRepo( } } +@Deprecated("Renamed", ReplaceWith("FileKeyValueRepo", "dev.inmo.micro_utils.repos.FileKeyValueRepo")) +typealias FileStandardKeyValueRepo = FileKeyValueRepo + @Warning("Files watching will not correctly works on Android Platform with version of API lower than API 26") @Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE") -class FileStandardKeyValueRepo( +class FileKeyValueRepo( folder: File, filesChangedProcessingScope: CoroutineScope? = null -) : StandardKeyValueRepo, - WriteStandardKeyValueRepo by FileWriteStandardKeyValueRepo(folder, filesChangedProcessingScope), - ReadStandardKeyValueRepo by FileReadStandardKeyValueRepo(folder) { +) : KeyValueRepo, + WriteKeyValueRepo by FileWriteKeyValueRepo(folder, filesChangedProcessingScope), + ReadKeyValueRepo by FileReadKeyValueRepo(folder) { } diff --git a/repos/common/src/main/kotlin/dev/inmo/micro_utils/repos/keyvalue/KeyValueStore.kt b/repos/common/src/main/kotlin/dev/inmo/micro_utils/repos/keyvalue/KeyValueStore.kt index 440490f51ea..dbddcbf52cb 100644 --- a/repos/common/src/main/kotlin/dev/inmo/micro_utils/repos/keyvalue/KeyValueStore.kt +++ b/repos/common/src/main/kotlin/dev/inmo/micro_utils/repos/keyvalue/KeyValueStore.kt @@ -7,7 +7,7 @@ import dev.inmo.micro_utils.pagination.Pagination import dev.inmo.micro_utils.pagination.PaginationResult import dev.inmo.micro_utils.pagination.utils.paginate import dev.inmo.micro_utils.pagination.utils.reverse -import dev.inmo.micro_utils.repos.StandardKeyValueRepo +import dev.inmo.micro_utils.repos.KeyValueRepo import kotlinx.coroutines.flow.* private val cache = HashMap>() @@ -15,7 +15,7 @@ private val cache = HashMap>() fun Context.keyValueStore( name: String = "default", cacheValues: Boolean = false -): StandardKeyValueRepo { +): KeyValueRepo { @Suppress("UNCHECKED_CAST") return cache.getOrPut(name) { KeyValueStore(this, name, cacheValues) @@ -26,7 +26,7 @@ class KeyValueStore internal constructor ( c: Context, preferencesName: String, useCache: Boolean = false -) : SharedPreferences.OnSharedPreferenceChangeListener, StandardKeyValueRepo { +) : SharedPreferences.OnSharedPreferenceChangeListener, KeyValueRepo { private val sharedPreferences = c.getSharedPreferences(preferencesName, Context.MODE_PRIVATE) private val cachedData = if (useCache) { diff --git a/repos/common/src/main/kotlin/dev/inmo/micro_utils/repos/versions/AndroidSharedPreferencesStandardVersionsRepoProxy.kt b/repos/common/src/main/kotlin/dev/inmo/micro_utils/repos/versions/AndroidSharedPreferencesStandardVersionsRepoProxy.kt index 1e9f1e1c1a4..6dfd471311b 100644 --- a/repos/common/src/main/kotlin/dev/inmo/micro_utils/repos/versions/AndroidSharedPreferencesStandardVersionsRepoProxy.kt +++ b/repos/common/src/main/kotlin/dev/inmo/micro_utils/repos/versions/AndroidSharedPreferencesStandardVersionsRepoProxy.kt @@ -4,13 +4,11 @@ package dev.inmo.micro_utils.repos.versions import android.content.Context import android.database.sqlite.SQLiteOpenHelper -import androidx.core.content.contentValuesOf import dev.inmo.micro_utils.repos.* import dev.inmo.micro_utils.repos.keyvalue.keyValueStore -import kotlinx.coroutines.runBlocking /** - * Will create [VersionsRepo] based on [T], but versions will be stored in [StandardKeyValueRepo] + * Will create [VersionsRepo] based on [T], but versions will be stored in [KeyValueRepo] * * @receiver Will be used to create [KeyValueBasedVersionsRepoProxy] via [keyValueStore] and pass it to [StandardVersionsRepo] * @@ -26,9 +24,9 @@ inline fun Context.versionsKeyValueRepo( ) ) /** - * Will create [VersionsRepo] based on [SQLiteOpenHelper], but versions will be stored in [StandardKeyValueRepo] + * Will create [VersionsRepo] based on [SQLiteOpenHelper], but versions will be stored in [KeyValueRepo] * - * @receiver Will be used to create [StandardKeyValueRepo] via [keyValueStore] and pass it to [StandardVersionsRepo] + * @receiver Will be used to create [KeyValueRepo] via [keyValueStore] and pass it to [StandardVersionsRepo] * * @see [keyValueStore] */ @@ -37,9 +35,9 @@ inline fun Context.versionsKeyValueRepoForSQL( ) = versionsKeyValueRepo(database) /** - * Will create [VersionsRepo] based on [SQLiteOpenHelper], but versions will be stored in [StandardKeyValueRepo] + * Will create [VersionsRepo] based on [SQLiteOpenHelper], but versions will be stored in [KeyValueRepo] * - * @param context Will be used to create [StandardKeyValueRepo] via [keyValueStore] and pass it to [StandardVersionsRepo] + * @param context Will be used to create [KeyValueRepo] via [keyValueStore] and pass it to [StandardVersionsRepo] * * @see [keyValueStore] */ diff --git a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedKeyValueRepo.kt b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedKeyValueRepo.kt index ee50149845a..8d3588d842f 100644 --- a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedKeyValueRepo.kt +++ b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedKeyValueRepo.kt @@ -1,9 +1,7 @@ package dev.inmo.micro_utils.repos.exposed.keyvalue -import dev.inmo.micro_utils.repos.StandardKeyValueRepo +import dev.inmo.micro_utils.repos.KeyValueRepo import dev.inmo.micro_utils.repos.exposed.ColumnAllocator -import dev.inmo.micro_utils.repos.exposed.initTable -import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.flow.* import org.jetbrains.exposed.sql.* import org.jetbrains.exposed.sql.transactions.transaction @@ -13,7 +11,7 @@ open class ExposedKeyValueRepo( keyColumnAllocator: ColumnAllocator, valueColumnAllocator: ColumnAllocator, tableName: String? = null -) : StandardKeyValueRepo, ExposedReadKeyValueRepo( +) : KeyValueRepo, ExposedReadKeyValueRepo( database, keyColumnAllocator, valueColumnAllocator, diff --git a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedReadKeyValueRepo.kt b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedReadKeyValueRepo.kt index ecf87dc312e..7fa979d4a26 100644 --- a/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedReadKeyValueRepo.kt +++ b/repos/exposed/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/exposed/keyvalue/ExposedReadKeyValueRepo.kt @@ -1,7 +1,7 @@ package dev.inmo.micro_utils.repos.exposed.keyvalue import dev.inmo.micro_utils.pagination.* -import dev.inmo.micro_utils.repos.ReadStandardKeyValueRepo +import dev.inmo.micro_utils.repos.ReadKeyValueRepo import dev.inmo.micro_utils.repos.exposed.* import org.jetbrains.exposed.sql.* import org.jetbrains.exposed.sql.transactions.transaction @@ -11,7 +11,7 @@ open class ExposedReadKeyValueRepo( keyColumnAllocator: ColumnAllocator, valueColumnAllocator: ColumnAllocator, tableName: String? = null -) : ReadStandardKeyValueRepo, ExposedRepo, Table(tableName ?: "") { +) : ReadKeyValueRepo, ExposedRepo, Table(tableName ?: "") { val keyColumn: Column = keyColumnAllocator() val valueColumn: Column = valueColumnAllocator() override val primaryKey: PrimaryKey = PrimaryKey(keyColumn, valueColumn) diff --git a/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapKeyValueRepo.kt b/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapKeyValueRepo.kt index 7e87197ac8d..17c21d33379 100644 --- a/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapKeyValueRepo.kt +++ b/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapKeyValueRepo.kt @@ -9,7 +9,7 @@ import kotlinx.coroutines.flow.MutableSharedFlow class ReadMapKeyValueRepo( protected val map: Map = emptyMap() -) : ReadStandardKeyValueRepo { +) : ReadKeyValueRepo { override suspend fun get(k: Key): Value? = map[k] override suspend fun values( @@ -58,7 +58,7 @@ class ReadMapKeyValueRepo( class WriteMapKeyValueRepo( private val map: MutableMap = mutableMapOf() -) : WriteStandardKeyValueRepo { +) : WriteKeyValueRepo { private val _onNewValue: MutableSharedFlow> = MutableSharedFlow() override val onNewValue: Flow> get() = _onNewValue @@ -89,8 +89,8 @@ class WriteMapKeyValueRepo( class MapKeyValueRepo( private val map: MutableMap = mutableMapOf() -) : StandardKeyValueRepo, - ReadStandardKeyValueRepo by ReadMapKeyValueRepo(map), - WriteStandardKeyValueRepo by WriteMapKeyValueRepo(map) +) : KeyValueRepo, + ReadKeyValueRepo by ReadMapKeyValueRepo(map), + WriteKeyValueRepo by WriteMapKeyValueRepo(map) -fun MutableMap.asKeyValueRepo(): StandardKeyValueRepo = MapKeyValueRepo(this) +fun MutableMap.asKeyValueRepo(): KeyValueRepo = MapKeyValueRepo(this) diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorStandardKeyValueRepoClient.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorKeyValueRepoClient.kt similarity index 76% rename from repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorStandardKeyValueRepoClient.kt rename to repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorKeyValueRepoClient.kt index 92f60bf7053..dc7d6f0b0b7 100644 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorStandardKeyValueRepoClient.kt +++ b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorKeyValueRepoClient.kt @@ -7,10 +7,10 @@ import io.ktor.http.ContentType import io.ktor.http.encodeURLQueryComponent import kotlinx.serialization.* -class KtorStandardKeyValueRepoClient ( - readDelegate: ReadStandardKeyValueRepo, - writeDelegate: WriteStandardKeyValueRepo -) : StandardKeyValueRepo by DelegateBasedStandardKeyValueRepo( +class KtorKeyValueRepoClient ( + readDelegate: ReadKeyValueRepo, + writeDelegate: WriteKeyValueRepo +) : KeyValueRepo by DelegateBasedKeyValueRepo( readDelegate, writeDelegate ) { @@ -21,11 +21,11 @@ class KtorStandardKeyValueRepoClient ( contentType: ContentType, noinline idSerializer: suspend (Key) -> String, noinline valueSerializer: suspend (Value) -> String - ) = KtorStandardKeyValueRepoClient( - KtorReadStandardKeyValueRepoClient( + ) = KtorKeyValueRepoClient( + KtorReadKeyValueRepoClient( baseUrl, httpClient, contentType, idSerializer, valueSerializer ), - KtorWriteStandardKeyValueRepoClient( + KtorWriteKeyValueRepoClient( baseUrl, httpClient, contentType @@ -38,7 +38,7 @@ class KtorStandardKeyValueRepoClient ( contentType: ContentType, noinline idSerializer: suspend (Key) -> String, noinline valueSerializer: suspend (Value) -> String - ) = KtorStandardKeyValueRepoClient( + ) = KtorKeyValueRepoClient( buildStandardUrl(baseUrl, subpart), httpClient, contentType, @@ -48,14 +48,14 @@ class KtorStandardKeyValueRepoClient ( } } -inline fun KtorStandardKeyValueRepoClient( +inline fun KtorKeyValueRepoClient( baseUrl: String, httpClient: HttpClient, contentType: ContentType, idSerializer: SerializationStrategy, valueSerializer: SerializationStrategy, serialFormat: StringFormat, -) = KtorStandardKeyValueRepoClient( +) = KtorKeyValueRepoClient( baseUrl, httpClient, contentType, @@ -66,14 +66,14 @@ inline fun KtorStandardKeyValueRepoClient( serialFormat.encodeToString(valueSerializer, it).encodeURLQueryComponent() } -inline fun KtorStandardKeyValueRepoClient( +inline fun KtorKeyValueRepoClient( baseUrl: String, httpClient: HttpClient, contentType: ContentType, idSerializer: SerializationStrategy, valueSerializer: SerializationStrategy, serialFormat: BinaryFormat, -) = KtorStandardKeyValueRepoClient( +) = KtorKeyValueRepoClient( baseUrl, httpClient, contentType, diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorReadStandardKeyValueRepoClient.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorReadKeyValueRepoClient.kt similarity index 88% rename from repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorReadStandardKeyValueRepoClient.kt rename to repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorReadKeyValueRepoClient.kt index 792d6b0d0d9..ded3486007d 100644 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorReadStandardKeyValueRepoClient.kt +++ b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorReadKeyValueRepoClient.kt @@ -2,7 +2,7 @@ package dev.inmo.micro_utils.repos.ktor.client.key_value import dev.inmo.micro_utils.ktor.common.* import dev.inmo.micro_utils.pagination.* -import dev.inmo.micro_utils.repos.ReadStandardKeyValueRepo +import dev.inmo.micro_utils.repos.ReadKeyValueRepo 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.key_value.* @@ -15,7 +15,7 @@ import io.ktor.util.reflect.TypeInfo import io.ktor.util.reflect.typeInfo import kotlinx.serialization.* -class KtorReadStandardKeyValueRepoClient( +class KtorReadKeyValueRepoClient( private val baseUrl: String, private val httpClient: HttpClient, private val contentType: ContentType, @@ -24,7 +24,7 @@ class KtorReadStandardKeyValueRepoClient( private val paginationResultIdsTypeInfo: TypeInfo, private val idSerializer: suspend (Key) -> String, private val valueSerializer: suspend (Value) -> String -) : ReadStandardKeyValueRepo { +) : ReadKeyValueRepo { override suspend fun get(k: Key): Value? = httpClient.get( buildStandardUrl( baseUrl, @@ -89,13 +89,13 @@ class KtorReadStandardKeyValueRepoClient( }.body() } -inline fun KtorReadStandardKeyValueRepoClient( +inline fun KtorReadKeyValueRepoClient( baseUrl: String, httpClient: HttpClient, contentType: ContentType, noinline idSerializer: suspend (Key) -> String, noinline valueSerializer: suspend (Value) -> String -) = KtorReadStandardKeyValueRepoClient( +) = KtorReadKeyValueRepoClient( baseUrl, httpClient, contentType, @@ -106,14 +106,14 @@ inline fun KtorReadStandardKeyValueRepoClient( valueSerializer ) -inline fun KtorReadStandardKeyValueRepoClient( +inline fun KtorReadKeyValueRepoClient( baseUrl: String, httpClient: HttpClient, idsSerializer: KSerializer, valueSerializer: KSerializer, serialFormat: StringFormat, contentType: ContentType, -) = KtorReadStandardKeyValueRepoClient( +) = KtorReadKeyValueRepoClient( baseUrl, httpClient, contentType, @@ -124,14 +124,14 @@ inline fun KtorReadStandardKeyValueRepoClient( serialFormat.encodeToString(valueSerializer, it).encodeURLQueryComponent() } -inline fun KtorReadStandardKeyValueRepoClient( +inline fun KtorReadKeyValueRepoClient( baseUrl: String, httpClient: HttpClient, idsSerializer: KSerializer, valuesSerializer: KSerializer, serialFormat: BinaryFormat, contentType: ContentType, -) = KtorReadStandardKeyValueRepoClient( +) = KtorReadKeyValueRepoClient( baseUrl, httpClient, contentType, diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorReadStandardKeyValueRepo.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorReadStandardKeyValueRepo.kt index 2359c8d2c24..cf9500652e1 100644 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorReadStandardKeyValueRepo.kt +++ b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorReadStandardKeyValueRepo.kt @@ -3,7 +3,7 @@ package dev.inmo.micro_utils.repos.ktor.client.key_value 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.ReadStandardKeyValueRepo +import dev.inmo.micro_utils.repos.ReadKeyValueRepo 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.countRoute @@ -14,13 +14,14 @@ import io.ktor.client.HttpClient import kotlinx.serialization.* import kotlinx.serialization.builtins.serializer +@Deprecated("Replaced with KtorReadKeyValueRepoClient") class KtorReadStandardKeyValueRepo ( private val baseUrl: String, private val unifiedRequester: UnifiedRequester, private val keySerializer: KSerializer, private val valueSerializer: KSerializer, private val valueNullableSerializer: KSerializer -) : ReadStandardKeyValueRepo { +) : ReadKeyValueRepo { constructor( baseUrl: String, client: HttpClient, diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorStandartKeyValueRepo.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorStandartKeyValueRepo.kt index 0dc7952970b..2ce6b5d6b1e 100644 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorStandartKeyValueRepo.kt +++ b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorStandartKeyValueRepo.kt @@ -7,6 +7,7 @@ import dev.inmo.micro_utils.repos.* import io.ktor.client.HttpClient import kotlinx.serialization.* +@Deprecated("Replaced with KtorKeyValueRepoClient") @Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE") class KtorStandartKeyValueRepo ( baseUrl: String, @@ -15,15 +16,15 @@ class KtorStandartKeyValueRepo ( keySerializer: KSerializer, valueSerializer: KSerializer, valueNullableSerializer: KSerializer -) : StandardKeyValueRepo, - ReadStandardKeyValueRepo by KtorReadStandardKeyValueRepo( +) : KeyValueRepo, + ReadKeyValueRepo by KtorReadStandardKeyValueRepo( "$baseUrl/$baseSubpart", unifiedRequester, keySerializer, valueSerializer, valueNullableSerializer ), - WriteStandardKeyValueRepo by KtorWriteStandardKeyValueRepo( + WriteKeyValueRepo by KtorWriteStandardKeyValueRepo( "$baseUrl/$baseSubpart", unifiedRequester, keySerializer, @@ -38,4 +39,4 @@ class KtorStandartKeyValueRepo ( valueNullableSerializer: KSerializer, serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat ) : this(baseUrl, baseSubpart, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer, valueNullableSerializer) -} \ No newline at end of file +} diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorWriteStandardKeyValueRepoClient.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorWriteKeyValueRepoClient.kt similarity index 92% rename from repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorWriteStandardKeyValueRepoClient.kt rename to repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorWriteKeyValueRepoClient.kt index d9abaf672ce..398e94de811 100644 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorWriteStandardKeyValueRepoClient.kt +++ b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorWriteKeyValueRepoClient.kt @@ -3,7 +3,7 @@ package dev.inmo.micro_utils.repos.ktor.client.key_value 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.WriteStandardKeyValueRepo +import dev.inmo.micro_utils.repos.WriteKeyValueRepo import dev.inmo.micro_utils.repos.ktor.common.key_value.* 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 KtorWriteStandardKeyValueRepoClient( +class KtorWriteKeyValueRepoClient( private val baseUrl: String, private val httpClient: HttpClient, private val contentType: ContentType, @@ -22,7 +22,7 @@ class KtorWriteStandardKeyValueRepoClient( private val idsListTypeInfo: TypeInfo, private val objectsListTypeInfo: TypeInfo, private val idsToObjectsMapTypeInfo: TypeInfo -) : WriteStandardKeyValueRepo { +) : WriteKeyValueRepo { @OptIn(InternalAPI::class) override suspend fun unsetWithValues(toUnset: List) { httpClient.post( @@ -61,7 +61,7 @@ class KtorWriteStandardKeyValueRepoClient( baseUrl: String, httpClient: HttpClient, contentType: ContentType - ) = KtorWriteStandardKeyValueRepoClient( + ) = KtorWriteKeyValueRepoClient( baseUrl, httpClient, contentType, diff --git a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorWriteStandardKeyValueRepo.kt b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorWriteStandardKeyValueRepo.kt index a7c1e898efb..4b51836ab57 100644 --- a/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorWriteStandardKeyValueRepo.kt +++ b/repos/ktor/client/src/commonMain/kotlin/dev/inmo/micro_utils/repos/ktor/client/key_value/KtorWriteStandardKeyValueRepo.kt @@ -2,19 +2,20 @@ package dev.inmo.micro_utils.repos.ktor.client.key_value import dev.inmo.micro_utils.ktor.client.* import dev.inmo.micro_utils.ktor.common.* -import dev.inmo.micro_utils.repos.WriteStandardKeyValueRepo +import dev.inmo.micro_utils.repos.WriteKeyValueRepo import dev.inmo.micro_utils.repos.ktor.common.key_value.* import io.ktor.client.HttpClient import kotlinx.coroutines.flow.Flow import kotlinx.serialization.KSerializer import kotlinx.serialization.builtins.* +@Deprecated("Replaced with KtorWriteKeyValueRepoClient") class KtorWriteStandardKeyValueRepo ( private var baseUrl: String, private var unifiedRequester: UnifiedRequester, private var keySerializer: KSerializer, private var valueSerializer: KSerializer, -) : WriteStandardKeyValueRepo { +) : WriteKeyValueRepo { private val keyValueMapSerializer = MapSerializer(keySerializer, valueSerializer) private val keysListSerializer = ListSerializer(keySerializer) private val valuesListSerializer = ListSerializer(valueSerializer) diff --git a/repos/ktor/common/src/jvmTest/kotlin/KVTests.kt b/repos/ktor/common/src/jvmTest/kotlin/KVTests.kt index c3ddf467325..8ffb2185f3e 100644 --- a/repos/ktor/common/src/jvmTest/kotlin/KVTests.kt +++ b/repos/ktor/common/src/jvmTest/kotlin/KVTests.kt @@ -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.key_value.KtorStandardKeyValueRepoClient -import dev.inmo.micro_utils.repos.ktor.server.key_value.configureStandardKeyValueRepoRoutes +import dev.inmo.micro_utils.repos.ktor.client.key_value.KtorKeyValueRepoClient +import dev.inmo.micro_utils.repos.ktor.server.key_value.configureKeyValueRepoRoutes import io.ktor.client.HttpClient import io.ktor.client.plugins.logging.Logging import io.ktor.http.ContentType @@ -38,7 +38,7 @@ class KVTests { contentConverter = KotlinxWebsocketSerializationConverter(Json) } routing { - configureStandardKeyValueRepoRoutes( + configureKeyValueRepoRoutes( repo, Int.serializer(), ComplexData.serializer(), @@ -55,7 +55,7 @@ class KVTests { contentConverter = KotlinxWebsocketSerializationConverter(Json) } } - val crudClient = KtorStandardKeyValueRepoClient( + val crudClient = KtorKeyValueRepoClient( "http://127.0.0.1:23456", client, ContentType.Application.Json, diff --git a/repos/ktor/common/src/jvmTest/kotlin/KVsTests.kt b/repos/ktor/common/src/jvmTest/kotlin/KVsTests.kt index 36363da5c60..20a8427e3e2 100644 --- a/repos/ktor/common/src/jvmTest/kotlin/KVsTests.kt +++ b/repos/ktor/common/src/jvmTest/kotlin/KVsTests.kt @@ -1,7 +1,6 @@ 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.key_value.KtorStandardKeyValueRepoClient 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 io.ktor.client.HttpClient diff --git a/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/KtorStandartKeyValueRepo.kt b/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/KtorStandartKeyValueRepo.kt index 0ed4f5d1a68..daec736b46c 100644 --- a/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/KtorStandartKeyValueRepo.kt +++ b/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/KtorStandartKeyValueRepo.kt @@ -4,15 +4,15 @@ 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.StandardKeyValueRepo +import dev.inmo.micro_utils.repos.KeyValueRepo import io.ktor.http.ContentType import io.ktor.server.routing.Route import io.ktor.server.routing.route import kotlinx.serialization.KSerializer -fun Route.configureStandardKeyValueRepoRoutes( +fun Route.configureKeyValueRepoRoutes( baseSubpart: String, - originalRepo: StandardKeyValueRepo, + originalRepo: KeyValueRepo, keySerializer: KSerializer, valueSerializer: KSerializer, valueNullableSerializer: KSerializer, @@ -26,7 +26,7 @@ fun Route.configureStandardKeyValueRepoRoutes( valueNullableSerializer, unifiedRouter ) - configureWriteStandardKeyValueRepoRoutes( + configureWriteValueRepoRoutes( originalRepo, keySerializer, valueSerializer, @@ -37,10 +37,10 @@ fun Route.configureStandardKeyValueRepoRoutes( fun Route.configureStandartKeyValueRepoRoutes( baseSubpart: String, - originalRepo: StandardKeyValueRepo, + originalRepo: KeyValueRepo, keySerializer: KSerializer, valueSerializer: KSerializer, valueNullableSerializer: KSerializer, serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat, serialFormatContentType: ContentType = standardKtorSerialFormatContentType -) = configureStandardKeyValueRepoRoutes(baseSubpart, originalRepo, keySerializer, valueSerializer, valueNullableSerializer, UnifiedRouter(serialFormat, serialFormatContentType)) +) = configureKeyValueRepoRoutes(baseSubpart, originalRepo, keySerializer, valueSerializer, valueNullableSerializer, UnifiedRouter(serialFormat, serialFormatContentType)) diff --git a/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/KtorStandartReadKeyValueRepo.kt b/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/KtorStandartReadKeyValueRepo.kt index a24b402cb3a..59b54d9b00a 100644 --- a/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/KtorStandartReadKeyValueRepo.kt +++ b/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/KtorStandartReadKeyValueRepo.kt @@ -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.ReadStandardKeyValueRepo +import dev.inmo.micro_utils.repos.ReadKeyValueRepo 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.countRoute @@ -20,7 +20,7 @@ import kotlinx.serialization.KSerializer import kotlinx.serialization.builtins.serializer fun Route.configureReadStandartKeyValueRepoRoutes ( - originalRepo: ReadStandardKeyValueRepo, + originalRepo: ReadKeyValueRepo, keySerializer: KSerializer, valueSerializer: KSerializer, valueNullableSerializer: KSerializer, @@ -96,7 +96,7 @@ fun Route.configureReadStandartKeyValueRepoRoutes ( } inline fun Route.configureReadStandartKeyValueRepoRoutes ( - originalRepo: ReadStandardKeyValueRepo, + originalRepo: ReadKeyValueRepo, keySerializer: KSerializer, valueSerializer: KSerializer, valueNullableSerializer: KSerializer, diff --git a/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/KtorStandartWriteKeyValueRepo.kt b/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/KtorStandartWriteKeyValueRepo.kt index 85179e81771..accc61d9f6c 100644 --- a/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/KtorStandartWriteKeyValueRepo.kt +++ b/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/KtorStandartWriteKeyValueRepo.kt @@ -3,7 +3,7 @@ package dev.inmo.micro_utils.repos.ktor.server.key_value 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.WriteStandardKeyValueRepo +import dev.inmo.micro_utils.repos.WriteKeyValueRepo import dev.inmo.micro_utils.repos.ktor.common.key_value.* import io.ktor.http.ContentType import io.ktor.server.routing.Route @@ -11,8 +11,8 @@ import io.ktor.server.routing.post import kotlinx.serialization.KSerializer import kotlinx.serialization.builtins.* -fun Route.configureWriteStandardKeyValueRepoRoutes ( - originalRepo: WriteStandardKeyValueRepo, +fun Route.configureWriteValueRepoRoutes ( + originalRepo: WriteKeyValueRepo, keySerializer: KSerializer, valueSerializer: KSerializer, unifiedRouter: UnifiedRouter @@ -62,9 +62,9 @@ fun Route.configureWriteStandardKeyValueRepoRoutes ( } fun Route.configureWriteStandartKeyValueRepoRoutes ( - originalRepo: WriteStandardKeyValueRepo, + originalRepo: WriteKeyValueRepo, keySerializer: KSerializer, valueSerializer: KSerializer, serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat, serialFormatContentType: ContentType = standardKtorSerialFormatContentType -) = configureWriteStandardKeyValueRepoRoutes(originalRepo, keySerializer, valueSerializer, UnifiedRouter(serialFormat, serialFormatContentType)) +) = configureWriteValueRepoRoutes(originalRepo, keySerializer, valueSerializer, UnifiedRouter(serialFormat, serialFormatContentType)) diff --git a/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/NewKtorStandartKeyValueRepo.kt b/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/NewKtorStandartKeyValueRepo.kt index 0748fd96cbf..b62db0700ff 100644 --- a/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/NewKtorStandartKeyValueRepo.kt +++ b/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/NewKtorStandartKeyValueRepo.kt @@ -1,37 +1,26 @@ package dev.inmo.micro_utils.repos.ktor.server.key_value 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.StandardCRUDRepo -import dev.inmo.micro_utils.repos.StandardKeyValueRepo -import dev.inmo.micro_utils.repos.ktor.common.idParameterName -import dev.inmo.micro_utils.repos.ktor.common.key_value.* -import dev.inmo.micro_utils.repos.ktor.common.valueParameterName +import dev.inmo.micro_utils.repos.KeyValueRepo import io.ktor.http.* -import io.ktor.server.application.call -import io.ktor.server.response.respond import io.ktor.server.routing.Route -import io.ktor.server.routing.get import kotlinx.serialization.* -import kotlinx.serialization.builtins.serializer -inline fun Route.configureStandardKeyValueRepoRoutes ( - originalRepo: StandardKeyValueRepo, +inline fun Route.configureKeyValueRepoRoutes ( + originalRepo: KeyValueRepo, noinline idDeserializer: suspend (String) -> Key, noinline valueDeserializer: suspend (String) -> Value ) { - configureReadStandardKeyValueRepoRoutes(originalRepo, idDeserializer, valueDeserializer) - configureWriteStandardKeyValueRepoRoutes(originalRepo) + configureReadKeyValueRepoRoutes(originalRepo, idDeserializer, valueDeserializer) + configureWriteValueRepoRoutes(originalRepo) } -inline fun Route.configureStandardKeyValueRepoRoutes( - originalRepo: StandardKeyValueRepo, +inline fun Route.configureKeyValueRepoRoutes( + originalRepo: KeyValueRepo, idsSerializer: DeserializationStrategy, valueSerializer: DeserializationStrategy, serialFormat: StringFormat -) = configureStandardKeyValueRepoRoutes( +) = configureKeyValueRepoRoutes( originalRepo, { serialFormat.decodeFromString(idsSerializer, it.decodeURLQueryComponent()) @@ -41,12 +30,12 @@ inline fun Route.configureStandardKeyVa } ) -inline fun Route.configureStandardKeyValueRepoRoutes( - originalRepo: StandardKeyValueRepo, +inline fun Route.configureKeyValueRepoRoutes( + originalRepo: KeyValueRepo, idsSerializer: DeserializationStrategy, valueSerializer: DeserializationStrategy, serialFormat: BinaryFormat -) = configureStandardKeyValueRepoRoutes( +) = configureKeyValueRepoRoutes( originalRepo, { serialFormat.decodeHex(idsSerializer, it) diff --git a/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/NewKtorStandartReadKeyValueRepo.kt b/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/NewKtorStandartReadKeyValueRepo.kt index a0f55ecc488..67eec8bda59 100644 --- a/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/NewKtorStandartReadKeyValueRepo.kt +++ b/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/NewKtorStandartReadKeyValueRepo.kt @@ -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.ReadStandardKeyValueRepo +import dev.inmo.micro_utils.repos.ReadKeyValueRepo 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.countRoute @@ -20,8 +20,8 @@ import io.ktor.util.reflect.typeInfo import kotlinx.serialization.* @OptIn(InternalAPI::class) -inline fun Route.configureReadStandardKeyValueRepoRoutes ( - originalRepo: ReadStandardKeyValueRepo, +inline fun Route.configureReadKeyValueRepoRoutes ( + originalRepo: ReadKeyValueRepo, noinline idDeserializer: suspend (String) -> Key, noinline valueDeserializer: suspend (String) -> Value ) { @@ -74,12 +74,12 @@ inline fun Route.configureReadStandardKeyValueRepoR } } -inline fun Route.configureReadStandardKeyValueRepoRoutes( - originalRepo: ReadStandardKeyValueRepo, +inline fun Route.configureReadKeyValueRepoRoutes( + originalRepo: ReadKeyValueRepo, idsSerializer: DeserializationStrategy, valueSerializer: DeserializationStrategy, serialFormat: StringFormat -) = configureReadStandardKeyValueRepoRoutes( +) = configureReadKeyValueRepoRoutes( originalRepo, { serialFormat.decodeFromString(idsSerializer, it.decodeURLQueryComponent()) @@ -89,12 +89,12 @@ inline fun Route.configureReadStandardKeyValueRepoR } ) -inline fun Route.configureReadStandardKeyValueRepoRoutes( - originalRepo: ReadStandardKeyValueRepo, +inline fun Route.configureReadKeyValueRepoRoutes( + originalRepo: ReadKeyValueRepo, idsSerializer: DeserializationStrategy, valueSerializer: DeserializationStrategy, serialFormat: BinaryFormat -) = configureReadStandardKeyValueRepoRoutes( +) = configureReadKeyValueRepoRoutes( originalRepo, { serialFormat.decodeHex(idsSerializer, it) diff --git a/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/NewKtorStandartWriteKeyValueRepo.kt b/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/NewKtorStandartWriteKeyValueRepo.kt index bac70871d05..8ad82d6695d 100644 --- a/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/NewKtorStandartWriteKeyValueRepo.kt +++ b/repos/ktor/server/src/jvmMain/kotlin/dev/inmo/micro_utils/repos/ktor/server/key_value/NewKtorStandartWriteKeyValueRepo.kt @@ -1,7 +1,7 @@ package dev.inmo.micro_utils.repos.ktor.server.key_value import dev.inmo.micro_utils.ktor.server.* -import dev.inmo.micro_utils.repos.WriteStandardKeyValueRepo +import dev.inmo.micro_utils.repos.WriteKeyValueRepo import dev.inmo.micro_utils.repos.ktor.common.key_value.* 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 Route.configureWriteStandardKeyValueRepoRoutes ( - originalRepo: WriteStandardKeyValueRepo +inline fun Route.configureWriteValueRepoRoutes ( + originalRepo: WriteKeyValueRepo ) { includeWebsocketHandling( onNewValueRoute,