Use server info repo in ViewModel

This commit is contained in:
Kirill Kamakin
2022-10-29 19:19:20 +02:00
parent cda22215ec
commit b2ff374cef
3 changed files with 10 additions and 3 deletions

View File

@@ -7,5 +7,7 @@ interface ServerInfoRepo {
suspend fun requireUrl(): String
suspend fun getVersion(): ServerVersion
suspend fun storeBaseURL(baseURL: String, version: String)
}

View File

@@ -44,4 +44,9 @@ class ServerInfoRepoImpl @Inject constructor(
version.startsWith("v1") -> ServerVersion.V1
else -> throw NetworkError.NotMealie(IllegalStateException("Server version is unknown: $version"))
}
override suspend fun storeBaseURL(baseURL: String, version: String) {
logger.v { "storeBaseURL() called with: baseURL = $baseURL, version = $version" }
serverInfoStorage.storeBaseURL(baseURL, version)
}
}

View File

@@ -5,7 +5,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel
import gq.kirmanak.mealient.data.baseurl.ServerInfoStorage
import gq.kirmanak.mealient.data.baseurl.ServerInfoRepo
import gq.kirmanak.mealient.data.baseurl.VersionDataSource
import gq.kirmanak.mealient.extensions.runCatchingExceptCancel
import gq.kirmanak.mealient.logging.Logger
@@ -15,7 +15,7 @@ import javax.inject.Inject
@HiltViewModel
class BaseURLViewModel @Inject constructor(
private val serverInfoStorage: ServerInfoStorage,
private val serverInfoRepo: ServerInfoRepo,
private val versionDataSource: VersionDataSource,
private val logger: Logger,
) : ViewModel() {
@@ -36,7 +36,7 @@ class BaseURLViewModel @Inject constructor(
val result = runCatchingExceptCancel {
// If it returns proper version info then it must be a Mealie
val version = versionDataSource.getVersionInfo(baseURL).version
serverInfoStorage.storeBaseURL(baseURL, version)
serverInfoRepo.storeBaseURL(baseURL, version)
}
logger.i { "checkBaseURL: result is $result" }
_uiState.value = OperationUiState.fromResult(result)