mirror of
				https://github.com/InsanusMokrassar/MicroUtils.git
				synced 2025-10-31 04:05:32 +00:00 
			
		
		
		
	deprecations handling
This commit is contained in:
		| @@ -2,6 +2,8 @@ | ||||
|  | ||||
| ## 0.12.0-beta | ||||
|  | ||||
| **OLD DEPRECATIONS HAVE BEEN REMOVED** | ||||
|  | ||||
| * `Versions` | ||||
|   * `Kotlin`: `1.6.21` -> `1.7.0` | ||||
|   * `Coroutines`: `1.6.3` -> `1.6.4` | ||||
| @@ -9,6 +11,8 @@ | ||||
|   * `Compose`: `1.2.0-alpha01-dev729` -> `1.2.0-alpha01-dev753` | ||||
|   * `Klock`: `2.7.0` -> `3.0.0` | ||||
|   * `uuid`: `0.4.1` -> `0.5.0` | ||||
| * `Ktor`: | ||||
|   * All previously standard functions related to work with binary data by default have been deprecated | ||||
|  | ||||
| ## 0.11.12 | ||||
|  | ||||
|   | ||||
| @@ -1,3 +1,5 @@ | ||||
| @file:Suppress("unused", "NOTHING_TO_INLINE") | ||||
|  | ||||
| package dev.inmo.micro_utils.common | ||||
|  | ||||
| import kotlinx.serialization.* | ||||
| @@ -21,11 +23,10 @@ import kotlinx.serialization.encoding.* | ||||
| sealed interface Either<T1, T2> { | ||||
|     val optionalT1: Optional<T1> | ||||
|     val optionalT2: Optional<T2> | ||||
|     @Deprecated("Use optionalT1 instead", ReplaceWith("optionalT1")) | ||||
|     val t1: T1? | ||||
|  | ||||
|     val t1OrNull: T1? | ||||
|         get() = optionalT1.dataOrNull() | ||||
|     @Deprecated("Use optionalT2 instead", ReplaceWith("optionalT2")) | ||||
|     val t2: T2? | ||||
|     val t2OrNull: T2? | ||||
|         get() = optionalT2.dataOrNull() | ||||
| } | ||||
|  | ||||
| @@ -33,7 +34,7 @@ class EitherSerializer<T1, T2>( | ||||
|     t1Serializer: KSerializer<T1>, | ||||
|     t2Serializer: KSerializer<T2>, | ||||
| ) : KSerializer<Either<T1, T2>> { | ||||
|     @OptIn(InternalSerializationApi::class) | ||||
|     @OptIn(InternalSerializationApi::class, ExperimentalSerializationApi::class) | ||||
|     override val descriptor: SerialDescriptor = buildSerialDescriptor( | ||||
|         "TypedSerializer", | ||||
|         SerialKind.CONTEXTUAL | ||||
| @@ -96,7 +97,7 @@ class EitherSerializer<T1, T2>( | ||||
|  */ | ||||
| @Serializable | ||||
| data class EitherFirst<T1, T2>( | ||||
|     override val t1: T1 | ||||
|     val t1: T1 | ||||
| ) : Either<T1, T2> { | ||||
|     override val optionalT1: Optional<T1> = t1.optional | ||||
|     override val optionalT2: Optional<T2> = Optional.absent() | ||||
| @@ -107,7 +108,7 @@ data class EitherFirst<T1, T2>( | ||||
|  */ | ||||
| @Serializable | ||||
| data class EitherSecond<T1, T2>( | ||||
|     override val t2: T2 | ||||
|     val t2: T2 | ||||
| ) : Either<T1, T2> { | ||||
|     override val optionalT1: Optional<T1> = Optional.absent() | ||||
|     override val optionalT2: Optional<T2> = t2.optional | ||||
|   | ||||
| @@ -95,9 +95,3 @@ fun <T> Optional<T>.dataOrThrow(throwable: Throwable) = @OptIn(Warning::class) i | ||||
|  * Returns [Optional.data] if [Optional.dataPresented] of [this] is true, or call [block] and returns the result of it | ||||
|  */ | ||||
| inline fun <T> Optional<T>.dataOrElse(block: () -> T) = @OptIn(Warning::class) if (dataPresented) @Suppress("UNCHECKED_CAST") (data as T) else block() | ||||
|  | ||||
| /** | ||||
|  * Returns [Optional.data] if [Optional.dataPresented] of [this] is true, or call [block] and returns the result of it | ||||
|  */ | ||||
| @Deprecated("dataOrElse now is inline", ReplaceWith("dataOrElse", "dev.inmo.micro_utils.common.dataOrElse")) | ||||
| suspend fun <T> Optional<T>.dataOrElseSuspendable(block: suspend () -> T) = @OptIn(Warning::class) if (dataPresented) @Suppress("UNCHECKED_CAST") (data as T) else block() | ||||
|   | ||||
| @@ -1,4 +0,0 @@ | ||||
| package dev.inmo.micro_utils.crypto | ||||
|  | ||||
| @Deprecated("Deprecated due to incorrect of work sometimes and redundancy. Can be replaced by korlibs krypto") | ||||
| expect fun SourceString.hmacSha256(key: String): String | ||||
| @@ -7,8 +7,3 @@ external interface CryptoJs { | ||||
| @JsModule("crypto-js") | ||||
| @JsNonModule | ||||
| external val CryptoJS: CryptoJs | ||||
|  | ||||
| @Deprecated("Deprecated due to incorrect of work sometimes and redundancy. Can be replaced by korlibs krypto") | ||||
| actual fun SourceString.hmacSha256(key: String): String { | ||||
|     return CryptoJS.asDynamic().HmacSHA256(this, key).toString().unsafeCast<String>() | ||||
| } | ||||
|   | ||||
| @@ -1,14 +0,0 @@ | ||||
| package dev.inmo.micro_utils.crypto | ||||
|  | ||||
| import javax.crypto.Mac | ||||
| import javax.crypto.spec.SecretKeySpec | ||||
|  | ||||
| @Deprecated("Deprecated due to incorrect of work sometimes and redundancy. Can be replaced by korlibs krypto") | ||||
| actual fun SourceString.hmacSha256(key: String): String { | ||||
|     val mac = Mac.getInstance("HmacSHA256") | ||||
|  | ||||
|     val secretKey = SecretKeySpec(key.toByteArray(), "HmacSHA256") | ||||
|     mac.init(secretKey) | ||||
|  | ||||
|     return mac.doFinal(toByteArray()).hex() | ||||
| } | ||||
| @@ -47,24 +47,11 @@ fun <I : O, O : State> CheckableHandlerHolder( | ||||
|     } | ||||
| ) | ||||
|  | ||||
| @Deprecated("Renamed", ReplaceWith("CheckableHandlerHolder")) | ||||
| fun <I : O, O : State> StateHandlerHolder( | ||||
|     inputKlass: KClass<I>, | ||||
|     strict: Boolean = false, | ||||
|     delegateTo: StatesHandler<I, O> | ||||
| ) = CheckableHandlerHolder(inputKlass, strict, delegateTo) | ||||
|  | ||||
| inline fun <reified I : O, O : State> CheckableHandlerHolder( | ||||
|     strict: Boolean = false, | ||||
|     delegateTo: StatesHandler<I, O> | ||||
| ) = CheckableHandlerHolder(I::class, strict, delegateTo) | ||||
|  | ||||
| @Deprecated("Renamed", ReplaceWith("CheckableHandlerHolder")) | ||||
| inline fun <reified I : O, O : State> StateHandlerHolder( | ||||
|     strict: Boolean = false, | ||||
|     delegateTo: StatesHandler<I, O> | ||||
| ) = CheckableHandlerHolder(strict, delegateTo) | ||||
|  | ||||
| inline fun <reified I : O, O: State> StatesHandler<I, O>.holder( | ||||
|     strict: Boolean = true | ||||
| ) = CheckableHandlerHolder<I, O>( | ||||
|   | ||||
| @@ -68,9 +68,6 @@ open class DefaultUpdatableStatesMachine<T : State>( | ||||
|      */ | ||||
|     protected open suspend fun shouldReplaceJob(previous: Optional<T>, new: T): Boolean = previous.dataOrNull() != new | ||||
|  | ||||
|     @Deprecated("Overwrite shouldReplaceJob instead") | ||||
|     protected open suspend fun compare(previous: Optional<T>, new: T): Boolean = shouldReplaceJob(previous, new) | ||||
|  | ||||
|     override suspend fun updateChain(currentState: T, newState: T) { | ||||
|         statesManager.update(currentState, newState) | ||||
|     } | ||||
|   | ||||
| @@ -1,17 +0,0 @@ | ||||
| package dev.inmo.micro_utils.fsm.common.managers | ||||
|  | ||||
| import dev.inmo.micro_utils.fsm.common.State | ||||
| import kotlinx.coroutines.flow.* | ||||
|  | ||||
| /** | ||||
|  * Creates [DefaultStatesManager] with [InMemoryDefaultStatesManagerRepo] | ||||
|  * | ||||
|  * @param onContextsConflictResolver Receive old [State], new one and the state currently placed on new [State.context] | ||||
|  * key. In case when this callback will returns true, the state placed on [State.context] of new will be replaced by | ||||
|  * new state by using [endChain] with that state | ||||
|  */ | ||||
| @Deprecated("Use DefaultStatesManager instead", ReplaceWith("DefaultStatesManager")) | ||||
| fun <T: State> InMemoryStatesManager( | ||||
|     onStartContextsConflictResolver: suspend (old: T, new: T) -> Boolean = { _, _ -> true }, | ||||
|     onUpdateContextsConflictResolver: suspend (old: T, new: T, currentNew: T) -> Boolean = { _, _, _ -> true } | ||||
| ) = DefaultStatesManager(onStartContextsConflictResolver = onStartContextsConflictResolver, onUpdateContextsConflictResolver = onUpdateContextsConflictResolver) | ||||
| @@ -19,6 +19,7 @@ import kotlinx.serialization.DeserializationStrategy | ||||
|  * @param checkReconnection This lambda will be called when it is required to reconnect to websocket to establish | ||||
|  * connection. Must return true in case if must be reconnected. By default always reconnecting | ||||
|  */ | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| inline fun <T> HttpClient.createStandardWebsocketFlow( | ||||
|     url: String, | ||||
|     crossinline checkReconnection: suspend (Throwable?) -> Boolean = { true }, | ||||
| @@ -65,6 +66,7 @@ inline fun <T> HttpClient.createStandardWebsocketFlow( | ||||
|  * @param checkReconnection This lambda will be called when it is required to reconnect to websocket to establish | ||||
|  * connection. Must return true in case if must be reconnected. By default always reconnecting | ||||
|  */ | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| inline fun <T> HttpClient.createStandardWebsocketFlow( | ||||
|     url: String, | ||||
|     deserializer: DeserializationStrategy<T>, | ||||
|   | ||||
| @@ -12,9 +12,7 @@ import io.ktor.http.* | ||||
| import io.ktor.utils.io.core.ByteReadPacket | ||||
| import kotlinx.serialization.* | ||||
|  | ||||
| @Deprecated("This class will be removed in next") | ||||
| typealias BodyPair<T> = Pair<SerializationStrategy<T>, T> | ||||
|  | ||||
| @Deprecated("This class will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| class UnifiedRequester( | ||||
|     val client: HttpClient = HttpClient(), | ||||
|     val serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat | ||||
| @@ -100,8 +98,10 @@ class UnifiedRequester( | ||||
|     ) = createStandardWebsocketFlow(url, { true }, deserializer, requestBuilder) | ||||
| } | ||||
|  | ||||
| @Deprecated("This property will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| val defaultRequester = UnifiedRequester() | ||||
|  | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| suspend fun <ResultType> HttpClient.uniget( | ||||
|     url: String, | ||||
|     resultDeserializer: DeserializationStrategy<ResultType>, | ||||
| @@ -111,6 +111,7 @@ suspend fun <ResultType> HttpClient.uniget( | ||||
| } | ||||
|  | ||||
|  | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| fun <T> SerializationStrategy<T>.encodeUrlQueryValue( | ||||
|     value: T, | ||||
|     serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat | ||||
| @@ -119,6 +120,7 @@ fun <T> SerializationStrategy<T>.encodeUrlQueryValue( | ||||
|     value | ||||
| ) | ||||
|  | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| suspend fun <BodyType, ResultType> HttpClient.unipost( | ||||
|     url: String, | ||||
|     bodyInfo: Pair<SerializationStrategy<BodyType>, BodyType>, | ||||
| @@ -132,6 +134,7 @@ suspend fun <BodyType, ResultType> HttpClient.unipost( | ||||
|     serialFormat.decodeDefault(resultDeserializer, it.body<StandardKtorSerialInputData>()) | ||||
| } | ||||
|  | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| suspend fun <ResultType> HttpClient.unimultipart( | ||||
|     url: String, | ||||
|     filename: String, | ||||
| @@ -160,6 +163,7 @@ suspend fun <ResultType> HttpClient.unimultipart( | ||||
|     requestBuilder() | ||||
| }.let { serialFormat.decodeDefault(resultDeserializer, it.body<StandardKtorSerialInputData>()) } | ||||
|  | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| suspend fun <BodyType, ResultType> HttpClient.unimultipart( | ||||
|     url: String, | ||||
|     filename: String, | ||||
| @@ -197,6 +201,7 @@ suspend fun <BodyType, ResultType> HttpClient.unimultipart( | ||||
|     serialFormat | ||||
| ) | ||||
|  | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| suspend fun <ResultType> HttpClient.unimultipart( | ||||
|     url: String, | ||||
|     mppFile: MPPFile, | ||||
| @@ -218,6 +223,7 @@ suspend fun <ResultType> HttpClient.unimultipart( | ||||
|     serialFormat | ||||
| ) | ||||
|  | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| suspend fun <BodyType, ResultType> HttpClient.unimultipart( | ||||
|     url: String, | ||||
|     mppFile: MPPFile, | ||||
|   | ||||
| @@ -33,6 +33,7 @@ fun <T> Route.includeWebsocketHandling( | ||||
|     } | ||||
| } | ||||
|  | ||||
| @Deprecated("This method will be removed soon") | ||||
| fun <T> Route.includeWebsocketHandling( | ||||
|     suburl: String, | ||||
|     flow: Flow<T>, | ||||
|   | ||||
| @@ -19,6 +19,7 @@ import kotlinx.coroutines.flow.Flow | ||||
| import kotlinx.serialization.DeserializationStrategy | ||||
| import kotlinx.serialization.SerializationStrategy | ||||
|  | ||||
| @Deprecated("This class method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| class UnifiedRouter( | ||||
|     val serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat, | ||||
|     val serialFormatContentType: ContentType = standardKtorSerialFormatContentType | ||||
| @@ -97,6 +98,7 @@ class UnifiedRouter( | ||||
|  | ||||
| val defaultUnifiedRouter = UnifiedRouter() | ||||
|  | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| suspend fun <T> ApplicationCall.unianswer( | ||||
|     answerSerializer: SerializationStrategy<T>, | ||||
|     answer: T | ||||
| @@ -107,6 +109,7 @@ suspend fun <T> ApplicationCall.unianswer( | ||||
|     ) | ||||
| } | ||||
|  | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| suspend fun <T> ApplicationCall.uniload( | ||||
|     deserializer: DeserializationStrategy<T> | ||||
| ) = safely { | ||||
| @@ -143,6 +146,7 @@ suspend fun ApplicationCall.uniloadMultipart( | ||||
|     resultInput ?: error("Bytes has not been received") | ||||
| } | ||||
|  | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| suspend fun <T> ApplicationCall.uniloadMultipart( | ||||
|     deserializer: DeserializationStrategy<T>, | ||||
|     onFormItem: (PartData.FormItem) -> Unit = {}, | ||||
| @@ -168,6 +172,7 @@ suspend fun <T> ApplicationCall.uniloadMultipart( | ||||
|     return resultInput to (completeData.dataOrNull().let { it as T }) | ||||
| } | ||||
|  | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| suspend fun <T> ApplicationCall.uniloadMultipartFile( | ||||
|     deserializer: DeserializationStrategy<T>, | ||||
|     onFormItem: (PartData.FormItem) -> Unit = {}, | ||||
| @@ -281,6 +286,7 @@ suspend fun ApplicationCall.getQueryParameterOrSendError( | ||||
|     } | ||||
| } | ||||
|  | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| fun <T> ApplicationCall.decodeUrlQueryValue( | ||||
|     field: String, | ||||
|     deserializer: DeserializationStrategy<T> | ||||
| @@ -291,6 +297,7 @@ fun <T> ApplicationCall.decodeUrlQueryValue( | ||||
|     ) | ||||
| } | ||||
|  | ||||
| @Deprecated("This method will be removed soon. It is now recommended to use built-in ktor features instead") | ||||
| suspend fun <T> ApplicationCall.decodeUrlQueryValueOrSendError( | ||||
|     field: String, | ||||
|     deserializer: DeserializationStrategy<T> | ||||
|   | ||||
| @@ -1,6 +0,0 @@ | ||||
| package dev.inmo.micro_utils.repos.cache | ||||
|  | ||||
| @Deprecated("Replaced", ReplaceWith("KVCache", "dev.inmo.micro_utils.repos.cache.cache.KVCache")) | ||||
| typealias KVCache<K, V> = dev.inmo.micro_utils.repos.cache.cache.KVCache<K, V> | ||||
| @Deprecated("Replaced", ReplaceWith("SimpleKVCache", "dev.inmo.micro_utils.repos.cache.cache.SimpleKVCache")) | ||||
| typealias SimpleKVCache<K, V> = dev.inmo.micro_utils.repos.cache.cache.SimpleKVCache<K, V> | ||||
| @@ -6,8 +6,6 @@ import dev.inmo.micro_utils.repos.* | ||||
| import kotlinx.coroutines.flow.Flow | ||||
| import kotlinx.coroutines.flow.map | ||||
|  | ||||
| @Deprecated("Renamed", ReplaceWith("MapperReadKeyValueRepo", "dev.inmo.micro_utils.repos.mappers.MapperReadKeyValueRepo")) | ||||
| typealias MapperReadStandardKeyValueRepo<FromKey, FromValue, ToKey, ToValue> = MapperReadKeyValueRepo<FromKey, FromValue, ToKey, ToValue> | ||||
| open class MapperReadKeyValueRepo<FromKey, FromValue, ToKey, ToValue>( | ||||
|     private val to: ReadKeyValueRepo<ToKey, ToValue>, | ||||
|     mapper: MapperRepo<FromKey, FromValue, ToKey, ToValue> | ||||
| @@ -85,8 +83,6 @@ inline fun <reified FromKey, reified FromValue, reified ToKey, reified ToValue> | ||||
|     mapper(keyFromToTo, valueFromToTo, keyToToFrom, valueToToFrom) | ||||
| ) | ||||
|  | ||||
| @Deprecated("Renamed", ReplaceWith("MapperWriteKeyValueRepo", "dev.inmo.micro_utils.repos.mappers.MapperWriteKeyValueRepo")) | ||||
| typealias MapperWriteStandardKeyValueRepo<FromKey, FromValue, ToKey, ToValue> = MapperWriteKeyValueRepo<FromKey, FromValue, ToKey, ToValue> | ||||
| open class MapperWriteKeyValueRepo<FromKey, FromValue, ToKey, ToValue>( | ||||
|     private val to: WriteKeyValueRepo<ToKey, ToValue>, | ||||
|     mapper: MapperRepo<FromKey, FromValue, ToKey, ToValue> | ||||
| @@ -130,8 +126,6 @@ inline fun <reified FromKey, reified FromValue, reified ToKey, reified ToValue> | ||||
|     mapper(keyFromToTo, valueFromToTo, keyToToFrom, valueToToFrom) | ||||
| ) | ||||
|  | ||||
| @Deprecated("Renamed", ReplaceWith("MapperKeyValueRepo", "dev.inmo.micro_utils.repos.mappers.MapperKeyValueRepo")) | ||||
| typealias MapperStandardKeyValueRepo<FromKey, FromValue, ToKey, ToValue> = MapperKeyValueRepo<FromKey, FromValue, ToKey, ToValue> | ||||
| @Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE") | ||||
| open class MapperKeyValueRepo<FromKey, FromValue, ToKey, ToValue>( | ||||
|     private val to: KeyValueRepo<ToKey, ToValue>, | ||||
|   | ||||
| @@ -6,8 +6,6 @@ import dev.inmo.micro_utils.repos.* | ||||
| import kotlinx.coroutines.flow.Flow | ||||
| import kotlinx.coroutines.flow.map | ||||
|  | ||||
| @Deprecated("Renamed", ReplaceWith("MapperReadKeyValuesRepo", "dev.inmo.micro_utils.repos.mappers.MapperReadKeyValuesRepo")) | ||||
| typealias MapperReadOneToManyKeyValueRepo<FromKey, FromValue, ToKey, ToValue> = MapperReadKeyValuesRepo<FromKey, FromValue, ToKey, ToValue> | ||||
| open class MapperReadKeyValuesRepo<FromKey, FromValue, ToKey, ToValue>( | ||||
|     private val to: ReadKeyValuesRepo<ToKey, ToValue>, | ||||
|     mapper: MapperRepo<FromKey, FromValue, ToKey, ToValue> | ||||
| @@ -83,8 +81,6 @@ inline fun <reified FromKey, reified FromValue, reified ToKey, reified ToValue> | ||||
|     mapper(keyFromToTo, valueFromToTo, keyToToFrom, valueToToFrom) | ||||
| ) | ||||
|  | ||||
| @Deprecated("Renamed", ReplaceWith("MapperWriteKeyValuesRepo", "dev.inmo.micro_utils.repos.mappers.MapperWriteKeyValuesRepo")) | ||||
| typealias MapperWriteOneToManyKeyValueRepo<FromKey, FromValue, ToKey, ToValue> = MapperWriteKeyValuesRepo<FromKey, FromValue, ToKey, ToValue> | ||||
| open class MapperWriteKeyValuesRepo<FromKey, FromValue, ToKey, ToValue>( | ||||
|     private val to: WriteKeyValuesRepo<ToKey, ToValue>, | ||||
|     mapper: MapperRepo<FromKey, FromValue, ToKey, ToValue> | ||||
| @@ -136,8 +132,6 @@ inline fun <reified FromKey, reified FromValue, reified ToKey, reified ToValue> | ||||
|     mapper(keyFromToTo, valueFromToTo, keyToToFrom, valueToToFrom) | ||||
| ) | ||||
|  | ||||
| @Deprecated("Renamed", ReplaceWith("MapperKeyValuesRepo", "dev.inmo.micro_utils.repos.mappers.MapperKeyValuesRepo")) | ||||
| typealias MapperOneToManyKeyValueRepo<FromKey, FromValue, ToKey, ToValue> = MapperKeyValuesRepo<FromKey, FromValue, ToKey, ToValue> | ||||
| @Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE") | ||||
| open class MapperKeyValuesRepo<FromKey, FromValue, ToKey, ToValue>( | ||||
|     private val to: KeyValuesRepo<ToKey, ToValue>, | ||||
|   | ||||
| @@ -13,9 +13,6 @@ import java.nio.file.StandardWatchEventKinds.* | ||||
| private inline val String.isAbsolute | ||||
|     get() = startsWith(File.separator) | ||||
|  | ||||
| @Deprecated("Renamed", ReplaceWith("FileReadKeyValueRepo", "dev.inmo.micro_utils.repos.FileReadKeyValueRepo")) | ||||
| typealias FileReadStandardKeyValueRepo = FileReadKeyValueRepo | ||||
|  | ||||
| class FileReadKeyValueRepo( | ||||
|     private val folder: File | ||||
| ) : ReadKeyValueRepo<String, File> { | ||||
| @@ -82,9 +79,6 @@ class FileReadKeyValueRepo( | ||||
|     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 | ||||
|  */ | ||||
| @@ -184,9 +178,6 @@ class FileWriteKeyValueRepo( | ||||
|     } | ||||
| } | ||||
|  | ||||
| @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 FileKeyValueRepo( | ||||
|   | ||||
| @@ -20,12 +20,6 @@ abstract class AbstractExposedWriteCRUDRepo<ObjectType, IdType, InputValueType>( | ||||
|     protected val _newObjectsFlow = MutableSharedFlow<ObjectType>(replyCacheInFlows, flowsChannelsSize) | ||||
|     protected val _updatedObjectsFlow = MutableSharedFlow<ObjectType>(replyCacheInFlows, flowsChannelsSize) | ||||
|     protected val _deletedObjectsIdsFlow = MutableSharedFlow<IdType>(replyCacheInFlows, flowsChannelsSize) | ||||
|     @Deprecated("Renamed", ReplaceWith("_newObjectsFlow")) | ||||
|     protected val newObjectsChannel = _newObjectsFlow | ||||
|     @Deprecated("Renamed", ReplaceWith("_updatedObjectsFlow")) | ||||
|     protected val updateObjectsChannel = _updatedObjectsFlow | ||||
|     @Deprecated("Renamed", ReplaceWith("_deletedObjectsIdsFlow")) | ||||
|     protected val deleteObjectsIdsChannel = _deletedObjectsIdsFlow | ||||
|  | ||||
|     override val newObjectsFlow: Flow<ObjectType> = _newObjectsFlow.asSharedFlow() | ||||
|     override val updatedObjectsFlow: Flow<ObjectType> = _updatedObjectsFlow.asSharedFlow() | ||||
|   | ||||
| @@ -87,6 +87,7 @@ class WriteMapKeyValueRepo<Key, Value>( | ||||
|     } | ||||
| } | ||||
|  | ||||
| @Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE") | ||||
| class MapKeyValueRepo<Key, Value>( | ||||
|     private val map: MutableMap<Key, Value> = mutableMapOf() | ||||
| ) : KeyValueRepo<Key, Value>, | ||||
|   | ||||
| @@ -5,8 +5,6 @@ import dev.inmo.micro_utils.pagination.utils.paginate | ||||
| import dev.inmo.micro_utils.pagination.utils.reverse | ||||
| import kotlinx.coroutines.flow.* | ||||
|  | ||||
| @Deprecated("Renamed", ReplaceWith("MapReadKeyValuesRepo", "dev.inmo.micro_utils.repos.MapReadKeyValuesRepo")) | ||||
| typealias MapReadOneToManyKeyValueRepo<Key, Value> = MapReadKeyValuesRepo<Key, Value> | ||||
| class MapReadKeyValuesRepo<Key, Value>( | ||||
|     private val map: Map<Key, List<Value>> = emptyMap() | ||||
| ) : ReadKeyValuesRepo<Key, Value> { | ||||
| @@ -55,8 +53,6 @@ class MapReadKeyValuesRepo<Key, Value>( | ||||
|     override suspend fun count(): Long = map.size.toLong() | ||||
| } | ||||
|  | ||||
| @Deprecated("Renamed", ReplaceWith("MapWriteKeyValuesRepo", "dev.inmo.micro_utils.repos.MapWriteKeyValuesRepo")) | ||||
| typealias MapWriteOneToManyKeyValueRepo<Key, Value> = MapWriteKeyValuesRepo<Key, Value> | ||||
| class MapWriteKeyValuesRepo<Key, Value>( | ||||
|     private val map: MutableMap<Key, MutableList<Value>> = mutableMapOf() | ||||
| ) : WriteKeyValuesRepo<Key, Value> { | ||||
| @@ -102,8 +98,7 @@ class MapWriteKeyValuesRepo<Key, Value>( | ||||
|     } | ||||
| } | ||||
|  | ||||
| @Deprecated("Renamed", ReplaceWith("MapKeyValuesRepo", "dev.inmo.micro_utils.repos.MapKeyValuesRepo")) | ||||
| typealias MapOneToManyKeyValueRepo1<Key, Value> = MapKeyValuesRepo<Key, Value> | ||||
| @Suppress("DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE") | ||||
| class MapKeyValuesRepo<Key, Value>( | ||||
|     private val map: MutableMap<Key, MutableList<Value>> = mutableMapOf() | ||||
| ) : KeyValuesRepo<Key, Value>, | ||||
| @@ -113,6 +108,3 @@ class MapKeyValuesRepo<Key, Value>( | ||||
| fun <K, V> MutableMap<K, List<V>>.asKeyValuesRepo(): KeyValuesRepo<K, V> = MapKeyValuesRepo( | ||||
|     map { (k, v) -> k to v.toMutableList() }.toMap().toMutableMap() | ||||
| ) | ||||
|  | ||||
| @Deprecated("Renamed", ReplaceWith("asKeyValuesRepo", "dev.inmo.micro_utils.repos.asKeyValuesRepo")) | ||||
| fun <K, V> MutableMap<K, List<V>>.asOneToManyKeyValueRepo(): KeyValuesRepo<K, V> = asKeyValuesRepo() | ||||
|   | ||||
| @@ -1,65 +0,0 @@ | ||||
| package dev.inmo.micro_utils.repos.ktor.client.crud | ||||
|  | ||||
| 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.ReadCRUDRepo | ||||
| import dev.inmo.micro_utils.repos.ktor.common.countRouting | ||||
| import dev.inmo.micro_utils.repos.ktor.common.crud.* | ||||
| import dev.inmo.micro_utils.repos.ktor.common.idParameterName | ||||
| import io.ktor.client.HttpClient | ||||
| import kotlinx.serialization.KSerializer | ||||
| import kotlinx.serialization.builtins.serializer | ||||
|  | ||||
| @Deprecated("Use KtorReadCRUDRepoClient instead") | ||||
| class KtorReadStandardCrudRepo<ObjectType, IdType> ( | ||||
|     private val baseUrl: String, | ||||
|     private val unifiedRequester: UnifiedRequester, | ||||
|     private val objectsSerializer: KSerializer<ObjectType>, | ||||
|     private val objectsSerializerNullable: KSerializer<ObjectType?>, | ||||
|     private val idsSerializer: KSerializer<IdType> | ||||
| ) : ReadCRUDRepo<ObjectType, IdType> { | ||||
|     private val paginationResultSerializer = PaginationResult.serializer(objectsSerializer) | ||||
|  | ||||
|     constructor( | ||||
|         baseUrl: String, | ||||
|         client: HttpClient, | ||||
|         objectsSerializer: KSerializer<ObjectType>, | ||||
|         objectsSerializerNullable: KSerializer<ObjectType?>, | ||||
|         idsSerializer: KSerializer<IdType>, | ||||
|         serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat | ||||
|     ) : this ( | ||||
|         baseUrl, UnifiedRequester(client, serialFormat), objectsSerializer, objectsSerializerNullable, idsSerializer | ||||
|     ) | ||||
|  | ||||
|     override suspend fun getByPagination(pagination: Pagination): PaginationResult<ObjectType> = unifiedRequester.uniget( | ||||
|         buildStandardUrl(baseUrl, getByPaginationRouting, pagination.asUrlQueryParts), | ||||
|         paginationResultSerializer | ||||
|     ) | ||||
|  | ||||
|     override suspend fun getById(id: IdType): ObjectType? = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             getByIdRouting, | ||||
|             idParameterName to unifiedRequester.encodeUrlQueryValue(idsSerializer, id) | ||||
|         ), | ||||
|         objectsSerializerNullable | ||||
|     ) | ||||
|  | ||||
|     override suspend fun contains(id: IdType): Boolean = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             containsRouting, | ||||
|             idParameterName to unifiedRequester.encodeUrlQueryValue(idsSerializer, id) | ||||
|         ), | ||||
|         Boolean.serializer() | ||||
|     ) | ||||
|  | ||||
|     override suspend fun count(): Long = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             countRouting | ||||
|         ), | ||||
|         Long.serializer() | ||||
|     ) | ||||
| } | ||||
| @@ -1,47 +0,0 @@ | ||||
| package dev.inmo.micro_utils.repos.ktor.client.crud | ||||
|  | ||||
| import dev.inmo.micro_utils.ktor.client.UnifiedRequester | ||||
| import dev.inmo.micro_utils.ktor.common.StandardKtorSerialFormat | ||||
| import dev.inmo.micro_utils.ktor.common.standardKtorSerialFormat | ||||
| import dev.inmo.micro_utils.repos.* | ||||
| import io.ktor.client.HttpClient | ||||
| import kotlinx.serialization.KSerializer | ||||
|  | ||||
| @Deprecated("Use KtorCRUDRepoClient instead") | ||||
| class KtorStandardCrudRepo<ObjectType, IdType, InputValue> ( | ||||
|     baseUrl: String, | ||||
|     baseSubpart: String, | ||||
|     unifiedRequester: UnifiedRequester, | ||||
|     objectsSerializer: KSerializer<ObjectType>, | ||||
|     objectsNullableSerializer: KSerializer<ObjectType?>, | ||||
|     inputsSerializer: KSerializer<InputValue>, | ||||
|     idsSerializer: KSerializer<IdType> | ||||
| ) : CRUDRepo<ObjectType, IdType, InputValue>, | ||||
|     ReadCRUDRepo<ObjectType, IdType> by KtorReadStandardCrudRepo( | ||||
|         "$baseUrl/$baseSubpart", | ||||
|         unifiedRequester, | ||||
|         objectsSerializer, | ||||
|         objectsNullableSerializer, | ||||
|         idsSerializer | ||||
|     ), | ||||
|     WriteCRUDRepo<ObjectType, IdType, InputValue> by KtorWriteStandardCrudRepo( | ||||
|         "$baseUrl/$baseSubpart", | ||||
|         unifiedRequester, | ||||
|         objectsSerializer, | ||||
|         objectsNullableSerializer, | ||||
|         inputsSerializer, | ||||
|         idsSerializer | ||||
|     ) { | ||||
|     constructor( | ||||
|         baseUrl: String, | ||||
|         baseSubpart: String, | ||||
|         client: HttpClient, | ||||
|         objectsSerializer: KSerializer<ObjectType>, | ||||
|         objectsNullableSerializer: KSerializer<ObjectType?>, | ||||
|         inputsSerializer: KSerializer<InputValue>, | ||||
|         idsSerializer: KSerializer<IdType>, | ||||
|         serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat | ||||
|     ) : this( | ||||
|         baseUrl, baseSubpart, UnifiedRequester(client, serialFormat), objectsSerializer, objectsNullableSerializer, inputsSerializer, idsSerializer | ||||
|     ) | ||||
| } | ||||
| @@ -1,80 +0,0 @@ | ||||
| package dev.inmo.micro_utils.repos.ktor.client.crud | ||||
|  | ||||
| import dev.inmo.micro_utils.ktor.client.* | ||||
| import dev.inmo.micro_utils.ktor.common.* | ||||
| import dev.inmo.micro_utils.repos.UpdatedValuePair | ||||
| import dev.inmo.micro_utils.repos.WriteCRUDRepo | ||||
| import dev.inmo.micro_utils.repos.ktor.common.crud.* | ||||
| import io.ktor.client.HttpClient | ||||
| import kotlinx.coroutines.flow.Flow | ||||
| import kotlinx.serialization.KSerializer | ||||
| import kotlinx.serialization.builtins.* | ||||
|  | ||||
| @Deprecated("Use KtorWriteCRUDRepoClient instead") | ||||
| class KtorWriteStandardCrudRepo<ObjectType, IdType, InputValue> ( | ||||
|     private val baseUrl: String, | ||||
|     private val unifiedRequester: UnifiedRequester, | ||||
|     private val objectsSerializer: KSerializer<ObjectType>, | ||||
|     private val objectsNullableSerializer: KSerializer<ObjectType?>, | ||||
|     private val inputsSerializer: KSerializer<InputValue>, | ||||
|     private val idsSerializer: KSerializer<IdType> | ||||
| ) : WriteCRUDRepo<ObjectType, IdType, InputValue> { | ||||
|     private val listObjectsSerializer = ListSerializer(objectsSerializer) | ||||
|     private val listInputSerializer = ListSerializer(inputsSerializer) | ||||
|     private val listIdsSerializer = ListSerializer(idsSerializer) | ||||
|     private val inputUpdateSerializer = PairSerializer( | ||||
|         idsSerializer, | ||||
|         inputsSerializer | ||||
|     ) | ||||
|     private val listInputUpdateSerializer = ListSerializer(inputUpdateSerializer) | ||||
|  | ||||
|     constructor( | ||||
|         baseUrl: String, | ||||
|         client: HttpClient, | ||||
|         objectsSerializer: KSerializer<ObjectType>, | ||||
|         objectsSerializerNullable: KSerializer<ObjectType?>, | ||||
|         inputsSerializer: KSerializer<InputValue>, | ||||
|         idsSerializer: KSerializer<IdType>, | ||||
|         serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat | ||||
|     ) : this ( | ||||
|         baseUrl, UnifiedRequester(client, serialFormat), objectsSerializer, objectsSerializerNullable, inputsSerializer, idsSerializer | ||||
|     ) | ||||
|  | ||||
|     override val newObjectsFlow: Flow<ObjectType> = unifiedRequester.createStandardWebsocketFlow( | ||||
|         buildStandardUrl(baseUrl, newObjectsFlowRouting), | ||||
|         deserializer = objectsSerializer | ||||
|     ) | ||||
|     override val updatedObjectsFlow: Flow<ObjectType> = unifiedRequester.createStandardWebsocketFlow( | ||||
|         buildStandardUrl(baseUrl, updatedObjectsFlowRouting), | ||||
|         deserializer = objectsSerializer | ||||
|     ) | ||||
|     override val deletedObjectsIdsFlow: Flow<IdType> = unifiedRequester.createStandardWebsocketFlow( | ||||
|         buildStandardUrl(baseUrl, deletedObjectsIdsFlowRouting), | ||||
|         deserializer = idsSerializer | ||||
|     ) | ||||
|  | ||||
|  | ||||
|     override suspend fun create(values: List<InputValue>): List<ObjectType> = unifiedRequester.unipost( | ||||
|         buildStandardUrl(baseUrl, createRouting), | ||||
|         Pair(listInputSerializer, values), | ||||
|         listObjectsSerializer | ||||
|     ) | ||||
|  | ||||
|     override suspend fun update(id: IdType, value: InputValue): ObjectType? = unifiedRequester.unipost( | ||||
|         buildStandardUrl(baseUrl, updateRouting), | ||||
|         Pair(inputUpdateSerializer, id to value), | ||||
|         objectsNullableSerializer | ||||
|     ) | ||||
|  | ||||
|     override suspend fun update(values: List<UpdatedValuePair<IdType, InputValue>>): List<ObjectType> = unifiedRequester.unipost( | ||||
|         buildStandardUrl(baseUrl, updateManyRouting), | ||||
|         Pair(listInputUpdateSerializer, values), | ||||
|         listObjectsSerializer | ||||
|     ) | ||||
|  | ||||
|     override suspend fun deleteById(ids: List<IdType>) = unifiedRequester.unipost( | ||||
|         buildStandardUrl(baseUrl, deleteByIdRouting), | ||||
|         Pair(listIdsSerializer, ids), | ||||
|         Unit.serializer() | ||||
|     ) | ||||
| } | ||||
| @@ -1,99 +0,0 @@ | ||||
| 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.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 | ||||
| import dev.inmo.micro_utils.repos.ktor.common.key_value.* | ||||
| import dev.inmo.micro_utils.repos.ktor.common.key_value.keyParameterName | ||||
| import dev.inmo.micro_utils.repos.ktor.common.key_value.reversedParameterName | ||||
| import io.ktor.client.HttpClient | ||||
| import kotlinx.serialization.* | ||||
| import kotlinx.serialization.builtins.serializer | ||||
|  | ||||
| @Deprecated("Replaced with KtorReadKeyValueRepoClient") | ||||
| class KtorReadStandardKeyValueRepo<Key, Value> ( | ||||
|     private val baseUrl: String, | ||||
|     private val unifiedRequester: UnifiedRequester, | ||||
|     private val keySerializer: KSerializer<Key>, | ||||
|     private val valueSerializer: KSerializer<Value>, | ||||
|     private val valueNullableSerializer: KSerializer<Value?> | ||||
| ) : ReadKeyValueRepo<Key, Value> { | ||||
|     constructor( | ||||
|         baseUrl: String, | ||||
|         client: HttpClient, | ||||
|         keySerializer: KSerializer<Key>, | ||||
|         valueSerializer: KSerializer<Value>, | ||||
|         valueNullableSerializer: KSerializer<Value?>, | ||||
|         serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat | ||||
|     ) : this ( | ||||
|         baseUrl, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer, valueNullableSerializer | ||||
|     ) | ||||
|  | ||||
|     override suspend fun get(k: Key): Value? = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             getRoute, | ||||
|             mapOf( | ||||
|                 keyParameterName to unifiedRequester.encodeUrlQueryValue(keySerializer, k) | ||||
|             ) | ||||
|         ), | ||||
|         valueNullableSerializer | ||||
|     ) | ||||
|  | ||||
|     override suspend fun values(pagination: Pagination, reversed: Boolean): PaginationResult<Value> = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             valuesRoute, | ||||
|             mapOf( | ||||
|                 reversedParameterName to unifiedRequester.encodeUrlQueryValue(Boolean.serializer(), reversed) | ||||
|             ) + pagination.asUrlQueryParts | ||||
|         ), | ||||
|         PaginationResult.serializer(valueSerializer) | ||||
|     ) | ||||
|  | ||||
|     override suspend fun keys(pagination: Pagination, reversed: Boolean): PaginationResult<Key> = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             keysRoute, | ||||
|             mapOf( | ||||
|                 reversedParameterName to unifiedRequester.encodeUrlQueryValue(Boolean.serializer(), reversed) | ||||
|             ) + pagination.asUrlQueryParts | ||||
|         ), | ||||
|         PaginationResult.serializer(keySerializer) | ||||
|     ) | ||||
|  | ||||
|     override suspend fun keys(v: Value, pagination: Pagination, reversed: Boolean): PaginationResult<Key> = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             keysRoute, | ||||
|             mapOf( | ||||
|                 valueParameterName to unifiedRequester.encodeUrlQueryValue(valueSerializer, v), | ||||
|                 reversedParameterName to unifiedRequester.encodeUrlQueryValue(Boolean.serializer(), reversed) | ||||
|             ) + pagination.asUrlQueryParts | ||||
|         ), | ||||
|         PaginationResult.serializer(keySerializer) | ||||
|     ) | ||||
|  | ||||
|     override suspend fun contains(key: Key): Boolean = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             containsRoute, | ||||
|             mapOf( | ||||
|                 keyParameterName to unifiedRequester.encodeUrlQueryValue(keySerializer, key) | ||||
|             ), | ||||
|         ), | ||||
|         Boolean.serializer(), | ||||
|     ) | ||||
|  | ||||
|     override suspend fun count(): Long = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             countRoute, | ||||
|         ), | ||||
|         Long.serializer() | ||||
|     ) | ||||
| } | ||||
| @@ -1,42 +0,0 @@ | ||||
| package dev.inmo.micro_utils.repos.ktor.client.key_value | ||||
|  | ||||
| import dev.inmo.micro_utils.ktor.client.UnifiedRequester | ||||
| import dev.inmo.micro_utils.ktor.common.StandardKtorSerialFormat | ||||
| import dev.inmo.micro_utils.ktor.common.standardKtorSerialFormat | ||||
| 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<K, V> ( | ||||
|     baseUrl: String, | ||||
|     baseSubpart: String, | ||||
|     unifiedRequester: UnifiedRequester, | ||||
|     keySerializer: KSerializer<K>, | ||||
|     valueSerializer: KSerializer<V>, | ||||
|     valueNullableSerializer: KSerializer<V?> | ||||
| ) : KeyValueRepo<K, V>, | ||||
|     ReadKeyValueRepo<K, V> by KtorReadStandardKeyValueRepo( | ||||
|         "$baseUrl/$baseSubpart", | ||||
|         unifiedRequester, | ||||
|         keySerializer, | ||||
|         valueSerializer, | ||||
|         valueNullableSerializer | ||||
|     ), | ||||
|     WriteKeyValueRepo<K, V> by KtorWriteStandardKeyValueRepo( | ||||
|         "$baseUrl/$baseSubpart", | ||||
|         unifiedRequester, | ||||
|         keySerializer, | ||||
|         valueSerializer | ||||
|     ) { | ||||
|     constructor( | ||||
|         baseUrl: String, | ||||
|         baseSubpart: String, | ||||
|         client: HttpClient = HttpClient(), | ||||
|         keySerializer: KSerializer<K>, | ||||
|         valueSerializer: KSerializer<V>, | ||||
|         valueNullableSerializer: KSerializer<V?>, | ||||
|         serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat | ||||
|     ) : this(baseUrl, baseSubpart, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer, valueNullableSerializer) | ||||
| } | ||||
| @@ -1,69 +0,0 @@ | ||||
| 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.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<K, V> ( | ||||
|     private var baseUrl: String, | ||||
|     private var unifiedRequester: UnifiedRequester, | ||||
|     private var keySerializer: KSerializer<K>, | ||||
|     private var valueSerializer: KSerializer<V>, | ||||
| ) : WriteKeyValueRepo<K, V> { | ||||
|     private val keyValueMapSerializer = MapSerializer(keySerializer, valueSerializer) | ||||
|     private val keysListSerializer = ListSerializer(keySerializer) | ||||
|     private val valuesListSerializer = ListSerializer(valueSerializer) | ||||
|  | ||||
|     constructor( | ||||
|         baseUrl: String, | ||||
|         client: HttpClient, | ||||
|         keySerializer: KSerializer<K>, | ||||
|         valueSerializer: KSerializer<V>, | ||||
|         serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat | ||||
|     ) : this ( | ||||
|         baseUrl, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer | ||||
|     ) | ||||
|  | ||||
|     override val onNewValue: Flow<Pair<K, V>> = unifiedRequester.createStandardWebsocketFlow( | ||||
|         buildStandardUrl(baseUrl, onNewValueRoute), | ||||
|         deserializer = PairSerializer(keySerializer, valueSerializer) | ||||
|     ) | ||||
|  | ||||
|     override val onValueRemoved: Flow<K> = unifiedRequester.createStandardWebsocketFlow( | ||||
|         buildStandardUrl(baseUrl, onValueRemovedRoute), | ||||
|         deserializer = keySerializer | ||||
|     ) | ||||
|  | ||||
|     override suspend fun set(toSet: Map<K, V>) = unifiedRequester.unipost( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             setRoute | ||||
|         ), | ||||
|         Pair(keyValueMapSerializer, toSet), | ||||
|         Unit.serializer() | ||||
|     ) | ||||
|  | ||||
|     override suspend fun unset(toUnset: List<K>) = unifiedRequester.unipost( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             unsetRoute, | ||||
|         ), | ||||
|         Pair(keysListSerializer, toUnset), | ||||
|         Unit.serializer() | ||||
|     ) | ||||
|  | ||||
|     override suspend fun unsetWithValues(toUnset: List<V>) = unifiedRequester.unipost( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             unsetWithValuesRoute, | ||||
|         ), | ||||
|         Pair(valuesListSerializer, toUnset), | ||||
|         Unit.serializer() | ||||
|     ) | ||||
| } | ||||
| @@ -1,38 +0,0 @@ | ||||
| package dev.inmo.micro_utils.repos.ktor.client.one_to_many | ||||
|  | ||||
| import dev.inmo.micro_utils.ktor.client.UnifiedRequester | ||||
| import dev.inmo.micro_utils.ktor.common.StandardKtorSerialFormat | ||||
| import dev.inmo.micro_utils.ktor.common.standardKtorSerialFormat | ||||
| 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>, | ||||
| ) : KeyValuesRepo<Key, Value>, | ||||
|     ReadKeyValuesRepo<Key, Value> by KtorReadOneToManyKeyValueRepo<Key, Value> ( | ||||
|         "$baseUrl/$baseSubpart", | ||||
|         unifiedRequester, | ||||
|         keySerializer, | ||||
|         valueSerializer, | ||||
|     ), | ||||
|     WriteKeyValuesRepo<Key, Value> by KtorWriteOneToManyKeyValueRepo<Key, Value> ( | ||||
|         "$baseUrl/$baseSubpart", | ||||
|         unifiedRequester, | ||||
|         keySerializer, | ||||
|         valueSerializer, | ||||
|     ) { | ||||
|     constructor( | ||||
|         baseUrl: String, | ||||
|         baseSubpart: String, | ||||
|         client: HttpClient, | ||||
|         keySerializer: KSerializer<Key>, | ||||
|         valueSerializer: KSerializer<Value>, | ||||
|         serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat | ||||
|     ) : this (baseUrl, baseSubpart, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer) | ||||
| } | ||||
| @@ -1,108 +0,0 @@ | ||||
| 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.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 | ||||
| import dev.inmo.micro_utils.repos.ktor.common.valueParameterName | ||||
| 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> | ||||
| ) : ReadKeyValuesRepo<Key, Value> { | ||||
|     private val paginationValueResultSerializer = PaginationResult.serializer(valueSerializer) | ||||
|     private val paginationKeyResultSerializer = PaginationResult.serializer(keySerializer) | ||||
|  | ||||
|     constructor( | ||||
|         baseUrl: String, | ||||
|         client: HttpClient, | ||||
|         keySerializer: KSerializer<Key>, | ||||
|         valueSerializer: KSerializer<Value>, | ||||
|         serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat | ||||
|     ) : this (baseUrl, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer) | ||||
|  | ||||
|     override suspend fun get(k: Key, pagination: Pagination, reversed: Boolean): PaginationResult<Value> = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             getRoute, | ||||
|             mapOf( | ||||
|                 keyParameterName to unifiedRequester.encodeUrlQueryValue(keySerializer, k), | ||||
|                 reversedParameterName to unifiedRequester.encodeUrlQueryValue(Boolean.serializer(), reversed) | ||||
|             ) + pagination.asUrlQueryParts | ||||
|         ), | ||||
|         paginationValueResultSerializer | ||||
|     ) | ||||
|  | ||||
|     override suspend fun keys(pagination: Pagination, reversed: Boolean): PaginationResult<Key> = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             keysRoute, | ||||
|             mapOf( | ||||
|                 reversedParameterName to unifiedRequester.encodeUrlQueryValue(Boolean.serializer(), reversed) | ||||
|             ) + pagination.asUrlQueryParts | ||||
|         ), | ||||
|         paginationKeyResultSerializer | ||||
|     ) | ||||
|  | ||||
|     override suspend fun keys(v: Value, pagination: Pagination, reversed: Boolean): PaginationResult<Key> = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             keysRoute, | ||||
|             mapOf( | ||||
|                 valueParameterName to unifiedRequester.encodeUrlQueryValue(valueSerializer, v), | ||||
|                 reversedParameterName to unifiedRequester.encodeUrlQueryValue(Boolean.serializer(), reversed) | ||||
|             ) + pagination.asUrlQueryParts | ||||
|         ), | ||||
|         paginationKeyResultSerializer | ||||
|     ) | ||||
|  | ||||
|     override suspend fun contains(k: Key): Boolean = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             containsByKeyRoute, | ||||
|             mapOf(keyParameterName to unifiedRequester.encodeUrlQueryValue(keySerializer, k)) | ||||
|         ), | ||||
|         Boolean.serializer() | ||||
|     ) | ||||
|  | ||||
|     override suspend fun contains(k: Key, v: Value): Boolean = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             containsByKeyValueRoute, | ||||
|             mapOf( | ||||
|                 keyParameterName to unifiedRequester.encodeUrlQueryValue(keySerializer, k), | ||||
|                 valueParameterName to unifiedRequester.encodeUrlQueryValue(valueSerializer, v), | ||||
|             ) | ||||
|         ), | ||||
|         Boolean.serializer() | ||||
|     ) | ||||
|  | ||||
|     override suspend fun count(k: Key): Long = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             countByKeyRoute, | ||||
|             mapOf( | ||||
|                 keyParameterName to unifiedRequester.encodeUrlQueryValue(keySerializer, k) | ||||
|             ) | ||||
|         ), | ||||
|         Long.serializer() | ||||
|     ) | ||||
|  | ||||
|     override suspend fun count(): Long = unifiedRequester.uniget( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             countRoute, | ||||
|         ), | ||||
|         Long.serializer() | ||||
|     ) | ||||
|  | ||||
| } | ||||
| @@ -1,88 +0,0 @@ | ||||
| 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.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> | ||||
| ) : WriteKeyValuesRepo<Key, Value> { | ||||
|     private val keyValueSerializer = PairSerializer(keySerializer, valueSerializer) | ||||
|     private val keyValueMapSerializer = MapSerializer(keySerializer, ListSerializer(valueSerializer)) | ||||
|  | ||||
|     constructor( | ||||
|         baseUrl: String, | ||||
|         client: HttpClient, | ||||
|         keySerializer: KSerializer<Key>, | ||||
|         valueSerializer: KSerializer<Value>, | ||||
|         serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat | ||||
|     ) : this ( | ||||
|         baseUrl, UnifiedRequester(client, serialFormat), keySerializer, valueSerializer | ||||
|     ) | ||||
|  | ||||
|     override val onNewValue: Flow<Pair<Key, Value>> = unifiedRequester.createStandardWebsocketFlow( | ||||
|         buildStandardUrl(baseUrl, onNewValueRoute), | ||||
|         deserializer = keyValueSerializer | ||||
|     ) | ||||
|     override val onValueRemoved: Flow<Pair<Key, Value>> = unifiedRequester.createStandardWebsocketFlow( | ||||
|         buildStandardUrl(baseUrl, onValueRemovedRoute), | ||||
|         deserializer = keyValueSerializer | ||||
|     ) | ||||
|     override val onDataCleared: Flow<Key> = unifiedRequester.createStandardWebsocketFlow( | ||||
|         buildStandardUrl(baseUrl, onDataClearedRoute), | ||||
|         deserializer = keySerializer | ||||
|     ) | ||||
|  | ||||
|     override suspend fun remove(toRemove: Map<Key, List<Value>>) = unifiedRequester.unipost( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             removeRoute, | ||||
|         ), | ||||
|         Pair(keyValueMapSerializer, toRemove), | ||||
|         Unit.serializer(), | ||||
|     ) | ||||
|  | ||||
|     override suspend fun add(toAdd: Map<Key, List<Value>>) = unifiedRequester.unipost( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             addRoute, | ||||
|         ), | ||||
|         Pair(keyValueMapSerializer, toAdd), | ||||
|         Unit.serializer(), | ||||
|     ) | ||||
|     override suspend fun clear(k: Key) = unifiedRequester.unipost( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             clearRoute, | ||||
|         ), | ||||
|         Pair(keySerializer, k), | ||||
|         Unit.serializer(), | ||||
|     ) | ||||
|  | ||||
|     override suspend fun clearWithValue(v: Value) = unifiedRequester.unipost( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             clearWithValueRoute, | ||||
|         ), | ||||
|         Pair(valueSerializer, v), | ||||
|         Unit.serializer(), | ||||
|     ) | ||||
|  | ||||
|     override suspend fun set(toSet: Map<Key, List<Value>>) = unifiedRequester.unipost( | ||||
|         buildStandardUrl( | ||||
|             baseUrl, | ||||
|             setRoute, | ||||
|         ), | ||||
|         Pair(keyValueMapSerializer, toSet), | ||||
|         Unit.serializer(), | ||||
|     ) | ||||
| } | ||||
		Reference in New Issue
	
	Block a user