From 56cce8ffddcddbf32c55efa6a396c222a44b319e Mon Sep 17 00:00:00 2001 From: Patrick Honkonen <1883101+SaintPatrck@users.noreply.github.com> Date: Wed, 2 Apr 2025 11:04:59 -0400 Subject: [PATCH] [PM-19782] Migrate network error handling to `network` module (#4957) --- .../auth/datasource/network/service/AccountsServiceImpl.kt | 6 +++--- .../auth/datasource/network/service/IdentityServiceImpl.kt | 6 +++--- .../vault/datasource/network/service/CiphersServiceImpl.kt | 6 +++--- .../vault/datasource/network/service/FolderServiceImpl.kt | 6 +++--- .../vault/datasource/network/service/SendsServiceImpl.kt | 6 +++--- network/build.gradle.kts | 2 ++ .../kotlin/com/bitwarden}/network/model/BitwardenError.kt | 2 +- .../com/bitwarden}/network/util/ExceptionExtensions.kt | 4 ++-- .../kotlin/com/bitwarden}/network/util/NetworkErrorCode.kt | 2 +- 9 files changed, 21 insertions(+), 19 deletions(-) rename {app/src/main/java/com/x8bit/bitwarden/data/platform/datasource => network/src/main/kotlin/com/bitwarden}/network/model/BitwardenError.kt (95%) rename {app/src/main/java/com/x8bit/bitwarden/data/platform/datasource => network/src/main/kotlin/com/bitwarden}/network/util/ExceptionExtensions.kt (88%) rename {app/src/main/java/com/x8bit/bitwarden/data/platform/datasource => network/src/main/kotlin/com/bitwarden}/network/util/NetworkErrorCode.kt (77%) diff --git a/app/src/main/java/com/x8bit/bitwarden/data/auth/datasource/network/service/AccountsServiceImpl.kt b/app/src/main/java/com/x8bit/bitwarden/data/auth/datasource/network/service/AccountsServiceImpl.kt index 9af290bcf4..c97168268f 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/auth/datasource/network/service/AccountsServiceImpl.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/auth/datasource/network/service/AccountsServiceImpl.kt @@ -1,5 +1,8 @@ package com.x8bit.bitwarden.data.auth.datasource.network.service +import com.bitwarden.network.model.toBitwardenError +import com.bitwarden.network.util.NetworkErrorCode +import com.bitwarden.network.util.parseErrorBodyOrNull import com.bitwarden.network.util.toResult import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthenticatedAccountsApi import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthenticatedKeyConnectorApi @@ -18,10 +21,7 @@ import com.x8bit.bitwarden.data.auth.datasource.network.model.ResendNewDeviceOtp import com.x8bit.bitwarden.data.auth.datasource.network.model.ResetPasswordRequestJson import com.x8bit.bitwarden.data.auth.datasource.network.model.SetPasswordRequestJson import com.x8bit.bitwarden.data.auth.datasource.network.model.VerifyOtpRequestJson -import com.x8bit.bitwarden.data.platform.datasource.network.model.toBitwardenError import com.x8bit.bitwarden.data.platform.datasource.network.util.HEADER_VALUE_BEARER_PREFIX -import com.x8bit.bitwarden.data.platform.datasource.network.util.NetworkErrorCode -import com.x8bit.bitwarden.data.platform.datasource.network.util.parseErrorBodyOrNull import kotlinx.serialization.json.Json /** diff --git a/app/src/main/java/com/x8bit/bitwarden/data/auth/datasource/network/service/IdentityServiceImpl.kt b/app/src/main/java/com/x8bit/bitwarden/data/auth/datasource/network/service/IdentityServiceImpl.kt index 6878a695b1..9af179f6c6 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/auth/datasource/network/service/IdentityServiceImpl.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/auth/datasource/network/service/IdentityServiceImpl.kt @@ -1,7 +1,10 @@ package com.x8bit.bitwarden.data.auth.datasource.network.service +import com.bitwarden.network.model.toBitwardenError +import com.bitwarden.network.util.NetworkErrorCode import com.bitwarden.network.util.base64UrlEncode import com.bitwarden.network.util.executeForNetworkResult +import com.bitwarden.network.util.parseErrorBodyOrNull import com.bitwarden.network.util.toResult import com.x8bit.bitwarden.data.auth.datasource.network.api.UnauthenticatedIdentityApi import com.x8bit.bitwarden.data.auth.datasource.network.model.GetTokenResponseJson @@ -18,9 +21,6 @@ import com.x8bit.bitwarden.data.auth.datasource.network.model.SendVerificationEm import com.x8bit.bitwarden.data.auth.datasource.network.model.TwoFactorDataModel import com.x8bit.bitwarden.data.auth.datasource.network.model.VerifyEmailTokenRequestJson import com.x8bit.bitwarden.data.auth.datasource.network.model.VerifyEmailTokenResponseJson -import com.x8bit.bitwarden.data.platform.datasource.network.model.toBitwardenError -import com.x8bit.bitwarden.data.platform.datasource.network.util.NetworkErrorCode -import com.x8bit.bitwarden.data.platform.datasource.network.util.parseErrorBodyOrNull import com.x8bit.bitwarden.data.platform.util.DeviceModelProvider import kotlinx.serialization.json.Json diff --git a/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/network/service/CiphersServiceImpl.kt b/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/network/service/CiphersServiceImpl.kt index 31c0d6a08c..988eeac806 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/network/service/CiphersServiceImpl.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/network/service/CiphersServiceImpl.kt @@ -2,11 +2,11 @@ package com.x8bit.bitwarden.data.vault.datasource.network.service import androidx.core.net.toUri import com.bitwarden.core.data.util.asFailure +import com.bitwarden.network.model.toBitwardenError +import com.bitwarden.network.util.NetworkErrorCode +import com.bitwarden.network.util.parseErrorBodyOrNull import com.bitwarden.network.util.toResult import com.bitwarden.vault.Attachment -import com.x8bit.bitwarden.data.platform.datasource.network.model.toBitwardenError -import com.x8bit.bitwarden.data.platform.datasource.network.util.NetworkErrorCode -import com.x8bit.bitwarden.data.platform.datasource.network.util.parseErrorBodyOrNull import com.x8bit.bitwarden.data.vault.datasource.network.api.AzureApi import com.x8bit.bitwarden.data.vault.datasource.network.api.CiphersApi import com.x8bit.bitwarden.data.vault.datasource.network.model.AttachmentJsonRequest diff --git a/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/network/service/FolderServiceImpl.kt b/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/network/service/FolderServiceImpl.kt index acbeb42a39..621a42ce18 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/network/service/FolderServiceImpl.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/network/service/FolderServiceImpl.kt @@ -1,9 +1,9 @@ package com.x8bit.bitwarden.data.vault.datasource.network.service +import com.bitwarden.network.model.toBitwardenError +import com.bitwarden.network.util.NetworkErrorCode +import com.bitwarden.network.util.parseErrorBodyOrNull import com.bitwarden.network.util.toResult -import com.x8bit.bitwarden.data.platform.datasource.network.model.toBitwardenError -import com.x8bit.bitwarden.data.platform.datasource.network.util.NetworkErrorCode -import com.x8bit.bitwarden.data.platform.datasource.network.util.parseErrorBodyOrNull import com.x8bit.bitwarden.data.vault.datasource.network.api.FoldersApi import com.x8bit.bitwarden.data.vault.datasource.network.model.FolderJsonRequest import com.x8bit.bitwarden.data.vault.datasource.network.model.SyncResponseJson diff --git a/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/network/service/SendsServiceImpl.kt b/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/network/service/SendsServiceImpl.kt index 99d23a14fa..289b68f13f 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/network/service/SendsServiceImpl.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/network/service/SendsServiceImpl.kt @@ -1,10 +1,10 @@ package com.x8bit.bitwarden.data.vault.datasource.network.service import androidx.core.net.toUri +import com.bitwarden.network.model.toBitwardenError +import com.bitwarden.network.util.NetworkErrorCode +import com.bitwarden.network.util.parseErrorBodyOrNull import com.bitwarden.network.util.toResult -import com.x8bit.bitwarden.data.platform.datasource.network.model.toBitwardenError -import com.x8bit.bitwarden.data.platform.datasource.network.util.NetworkErrorCode -import com.x8bit.bitwarden.data.platform.datasource.network.util.parseErrorBodyOrNull import com.x8bit.bitwarden.data.vault.datasource.network.api.AzureApi import com.x8bit.bitwarden.data.vault.datasource.network.api.SendsApi import com.x8bit.bitwarden.data.vault.datasource.network.model.CreateFileSendResponse diff --git a/network/build.gradle.kts b/network/build.gradle.kts index ed63cd12f7..6d28fe4c0c 100644 --- a/network/build.gradle.kts +++ b/network/build.gradle.kts @@ -1,6 +1,7 @@ plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.serialization) } android { @@ -36,6 +37,7 @@ dependencies { implementation(project(":core")) implementation(libs.androidx.core.ktx) + implementation(libs.kotlinx.serialization) implementation(libs.square.okhttp) implementation(libs.square.okhttp.logging) implementation(platform(libs.square.retrofit.bom)) diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/model/BitwardenError.kt b/network/src/main/kotlin/com/bitwarden/network/model/BitwardenError.kt similarity index 95% rename from app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/model/BitwardenError.kt rename to network/src/main/kotlin/com/bitwarden/network/model/BitwardenError.kt index 2b93a92348..5bfd01a292 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/model/BitwardenError.kt +++ b/network/src/main/kotlin/com/bitwarden/network/model/BitwardenError.kt @@ -1,4 +1,4 @@ -package com.x8bit.bitwarden.data.platform.datasource.network.model +package com.bitwarden.network.model import retrofit2.HttpException import java.io.IOException diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/util/ExceptionExtensions.kt b/network/src/main/kotlin/com/bitwarden/network/util/ExceptionExtensions.kt similarity index 88% rename from app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/util/ExceptionExtensions.kt rename to network/src/main/kotlin/com/bitwarden/network/util/ExceptionExtensions.kt index 5ac149ec8d..cbceae428e 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/util/ExceptionExtensions.kt +++ b/network/src/main/kotlin/com/bitwarden/network/util/ExceptionExtensions.kt @@ -1,7 +1,7 @@ -package com.x8bit.bitwarden.data.platform.datasource.network.util +package com.bitwarden.network.util import com.bitwarden.core.data.util.decodeFromStringOrNull -import com.x8bit.bitwarden.data.platform.datasource.network.model.BitwardenError +import com.bitwarden.network.model.BitwardenError import kotlinx.serialization.json.Json import retrofit2.HttpException diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/util/NetworkErrorCode.kt b/network/src/main/kotlin/com/bitwarden/network/util/NetworkErrorCode.kt similarity index 77% rename from app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/util/NetworkErrorCode.kt rename to network/src/main/kotlin/com/bitwarden/network/util/NetworkErrorCode.kt index 7f4e8bb250..720c809b14 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/network/util/NetworkErrorCode.kt +++ b/network/src/main/kotlin/com/bitwarden/network/util/NetworkErrorCode.kt @@ -1,4 +1,4 @@ -package com.x8bit.bitwarden.data.platform.datasource.network.util +package com.bitwarden.network.util /** * An enum that represents HTTP error codes that we may need to parse for specific responses.