commonMain.com.paoapps.fifi.auth.model.AuthModelUtils.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fifi-auth-jvm Show documentation
Show all versions of fifi-auth-jvm Show documentation
Kotlin Multiplatform Mobile framework for optimal code sharing between iOS and Android.
The newest version!
package com.paoapps.fifi.auth.model
import com.paoapps.blockedcache.BlockedCache
import com.paoapps.blockedcache.BlockedCacheData
import com.paoapps.fifi.api.ClientApi
import com.paoapps.fifi.auth.IdentifiableClaims
import com.paoapps.fifi.auth.api.AuthClientApi
import com.paoapps.fifi.model.ModelEnvironment
import com.paoapps.fifi.model.ModelHelper
import com.paoapps.fifi.model.datacontainer.DataContainer
import com.paoapps.fifi.model.createBlockCache
import kotlinx.coroutines.flow.flowOf
import kotlin.time.Duration
fun , Environment : ModelEnvironment, UserId, Api: AuthClientApi> createBlockCache(
authModel: AuthModel,
dataContainer: DataContainer,
duration: Duration,
expire: Duration?,
selector: (ModelData) -> BlockedCacheData?,
name: String,
triggerOnUserIdChange: Boolean = true,
isDebugEnabled: Boolean = false
): BlockedCache {
val userIdChangedFlow = if (triggerOnUserIdChange) authModel.userIdFlow else flowOf(Unit)
return createBlockCache(dataContainer, duration, expire, selector, name, userIdChangedFlow, isDebugEnabled)
}
fun , Environment : ModelEnvironment, UserId, Api: AuthClientApi> ModelHelper, Api>.createBlockCache(
authModel: AuthModel,
duration: Duration,
expire: Duration?,
triggerOnUserIdChange: Boolean = true,
isDebugEnabled: Boolean = false
): BlockedCache {
return createBlockCache(
authModel = authModel,
dataContainer = modelDataContainer,
duration = duration,
expire = expire,
selector = { it },
name = name,
triggerOnUserIdChange = triggerOnUserIdChange,
isDebugEnabled = isDebugEnabled
)
}