From da33bc27307935e095f8c770b9e6283dd86048d7 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Sat, 29 Oct 2022 16:50:13 +0200 Subject: [PATCH] Remove v1 version from v0 data source --- .../data/network/MealieDataSourceWrapper.kt | 10 +++++++++- .../datasource/MealieDataSourceImpl.kt | 19 ++++--------------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/gq/kirmanak/mealient/data/network/MealieDataSourceWrapper.kt b/app/src/main/java/gq/kirmanak/mealient/data/network/MealieDataSourceWrapper.kt index 381cdef..bd91b0c 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/network/MealieDataSourceWrapper.kt +++ b/app/src/main/java/gq/kirmanak/mealient/data/network/MealieDataSourceWrapper.kt @@ -29,7 +29,15 @@ class MealieDataSourceWrapper @Inject constructor( withAuthHeader { token -> mealieDataSource.addRecipe(getUrl(), token, recipe) } override suspend fun getVersionInfo(baseUrl: String): VersionInfo = - mealieDataSource.getVersionInfo(baseUrl).toVersionInfo() + runCatchingExceptCancel { + mealieDataSource.getVersionInfo(baseUrl).toVersionInfo() + }.getOrElse { + if (it is NetworkError.NotMealie) { + mealieDataSourceV1.getVersionInfo(baseUrl).toVersionInfo() + } else { + throw it + } + } override suspend fun requestRecipes(start: Int, limit: Int): List = withAuthHeader { token -> diff --git a/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/MealieDataSourceImpl.kt b/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/MealieDataSourceImpl.kt index e87c7c9..9d4a6fd 100644 --- a/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/MealieDataSourceImpl.kt +++ b/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/MealieDataSourceImpl.kt @@ -46,25 +46,14 @@ class MealieDataSourceImpl @Inject constructor( logParameters = { "baseUrl = $baseUrl" }, ).getOrElse { when (it) { - is HttpException, is SerializationException -> getVersionInfoV1(baseUrl) - is SocketTimeoutException, - is ConnectException -> throw NetworkError.NoServerConnection(it) + is HttpException, is SerializationException -> throw NetworkError.NotMealie(it) + is SocketTimeoutException, is ConnectException -> throw NetworkError.NoServerConnection( + it + ) else -> throw NetworkError.MalformedUrl(it) } } - private suspend fun getVersionInfoV1(baseUrl: String): VersionResponse = makeCall( - block = { getVersion("$baseUrl/api/app/about") }, - logMethod = { "getVersionInfoV1" }, - logParameters = { "baseUrl = $baseUrl" }, - ).getOrElse { - throw when (it) { - is HttpException, is SerializationException -> NetworkError.NotMealie(it) - is SocketTimeoutException, is ConnectException -> NetworkError.NoServerConnection(it) - else -> NetworkError.MalformedUrl(it) - } - } - override suspend fun requestRecipes( baseUrl: String, token: String?, start: Int, limit: Int ): List = makeCall(