From 14e833247d9fdb1fb301d525829acb5306d758e9 Mon Sep 17 00:00:00 2001 From: David Perez Date: Tue, 4 Nov 2025 13:08:10 -0600 Subject: [PATCH] PM-27770: Update error parsing when creating or updating a cipher (#6118) --- .../data/vault/manager/CipherManagerImpl.kt | 19 +++++++++++++------ .../network/model/CreateCipherResponseJson.kt | 6 +++--- .../network/model/UpdateCipherResponseJson.kt | 6 +++--- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/CipherManagerImpl.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/CipherManagerImpl.kt index 835dfb0ab3..0f5cff1e5e 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/CipherManagerImpl.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/CipherManagerImpl.kt @@ -91,7 +91,10 @@ class CipherManagerImpl( .map { response -> when (response) { is CreateCipherResponseJson.Invalid -> { - CreateCipherResult.Error(errorMessage = response.message, error = null) + CreateCipherResult.Error( + errorMessage = response.firstValidationErrorMessage, + error = null, + ) } is CreateCipherResponseJson.Success -> { @@ -131,7 +134,10 @@ class CipherManagerImpl( .map { response -> when (response) { is CreateCipherResponseJson.Invalid -> { - CreateCipherResult.Error(errorMessage = response.message, error = null) + CreateCipherResult.Error( + errorMessage = response.firstValidationErrorMessage, + error = null, + ) } is CreateCipherResponseJson.Success -> { @@ -301,7 +307,10 @@ class CipherManagerImpl( .map { response -> when (response) { is UpdateCipherResponseJson.Invalid -> { - UpdateCipherResult.Error(errorMessage = response.message, error = null) + UpdateCipherResult.Error( + errorMessage = response.firstValidationErrorMessage, + error = null, + ) } is UpdateCipherResponseJson.Success -> { @@ -581,9 +590,7 @@ class CipherManagerImpl( .flatMap { response -> when (response) { is UpdateCipherResponseJson.Invalid -> { - IllegalStateException( - response.message, - ) + IllegalStateException(response.firstValidationErrorMessage) .asFailure() } diff --git a/network/src/main/kotlin/com/bitwarden/network/model/CreateCipherResponseJson.kt b/network/src/main/kotlin/com/bitwarden/network/model/CreateCipherResponseJson.kt index 841164ef22..96d905f011 100644 --- a/network/src/main/kotlin/com/bitwarden/network/model/CreateCipherResponseJson.kt +++ b/network/src/main/kotlin/com/bitwarden/network/model/CreateCipherResponseJson.kt @@ -24,9 +24,9 @@ sealed class CreateCipherResponseJson { @Serializable data class Invalid( @SerialName("message") - val message: String?, + override val message: String, @SerialName("validationErrors") - val validationErrors: Map>?, - ) : CreateCipherResponseJson() + override val validationErrors: Map>?, + ) : CreateCipherResponseJson(), InvalidJsonResponse } diff --git a/network/src/main/kotlin/com/bitwarden/network/model/UpdateCipherResponseJson.kt b/network/src/main/kotlin/com/bitwarden/network/model/UpdateCipherResponseJson.kt index 8f4a34c90e..b09fb93dbe 100644 --- a/network/src/main/kotlin/com/bitwarden/network/model/UpdateCipherResponseJson.kt +++ b/network/src/main/kotlin/com/bitwarden/network/model/UpdateCipherResponseJson.kt @@ -25,9 +25,9 @@ sealed class UpdateCipherResponseJson { @Serializable data class Invalid( @SerialName("message") - val message: String?, + override val message: String, @SerialName("validationErrors") - val validationErrors: Map>?, - ) : UpdateCipherResponseJson() + override val validationErrors: Map>?, + ) : UpdateCipherResponseJson(), InvalidJsonResponse }