mirror of
https://github.com/bitwarden/android.git
synced 2026-03-21 22:00:42 -05:00
Simplify error response models (#4775)
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
package com.x8bit.bitwarden.data.auth.datasource.network.model
|
||||
|
||||
import kotlinx.serialization.ExperimentalSerializationApi
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.JsonNames
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
|
||||
/**
|
||||
@@ -92,20 +94,21 @@ sealed class GetTokenResponseJson {
|
||||
|
||||
/**
|
||||
* Models json body of an invalid request.
|
||||
*
|
||||
* This model supports older versions of the error response model that used lower-case keys.
|
||||
*/
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
@Serializable
|
||||
data class Invalid(
|
||||
@JsonNames("errorModel")
|
||||
@SerialName("ErrorModel")
|
||||
val errorModel: ErrorModel?,
|
||||
@SerialName("errorModel")
|
||||
val legacyErrorModel: LegacyErrorModel?,
|
||||
private val errorModel: ErrorModel?,
|
||||
) : GetTokenResponseJson() {
|
||||
|
||||
/**
|
||||
* The error message returned from the server, or null.
|
||||
*/
|
||||
val errorMessage: String?
|
||||
get() = errorModel?.errorMessage ?: legacyErrorModel?.errorMessage
|
||||
val errorMessage: String? get() = errorModel?.errorMessage
|
||||
|
||||
/**
|
||||
* The type of invalid responses that can be received.
|
||||
@@ -131,24 +134,16 @@ sealed class GetTokenResponseJson {
|
||||
|
||||
/**
|
||||
* The error body of an invalid request containing a message.
|
||||
*
|
||||
* This model supports older versions of the error response model that used lower-case
|
||||
* keys.
|
||||
*/
|
||||
@Serializable
|
||||
data class ErrorModel(
|
||||
@JsonNames("message")
|
||||
@SerialName("Message")
|
||||
val errorMessage: String,
|
||||
)
|
||||
|
||||
/**
|
||||
* The legacy error body of an invalid request containing a message.
|
||||
*
|
||||
* This model is used to support older versions of the error response model that used
|
||||
* lower-case keys.
|
||||
*/
|
||||
@Serializable
|
||||
data class LegacyErrorModel(
|
||||
@SerialName("message")
|
||||
val errorMessage: String,
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -287,7 +287,7 @@ class IdentityServiceTest : BaseServiceTest() {
|
||||
captchaToken = null,
|
||||
uniqueAppId = UNIQUE_APP_ID,
|
||||
)
|
||||
assertEquals(LEGACY_INVALID_LOGIN.asSuccess(), result)
|
||||
assertEquals(INVALID_LOGIN.asSuccess(), result)
|
||||
}
|
||||
|
||||
@Suppress("MaxLineLength")
|
||||
@@ -651,7 +651,7 @@ private const val INVALID_LOGIN_JSON = """
|
||||
private const val LEGACY_INVALID_LOGIN_JSON = """
|
||||
{
|
||||
"errorModel": {
|
||||
"message": "Legacy-123"
|
||||
"message": "123"
|
||||
}
|
||||
}
|
||||
"""
|
||||
@@ -688,14 +688,6 @@ private val INVALID_LOGIN = GetTokenResponseJson.Invalid(
|
||||
errorModel = GetTokenResponseJson.Invalid.ErrorModel(
|
||||
errorMessage = "123",
|
||||
),
|
||||
legacyErrorModel = null,
|
||||
)
|
||||
|
||||
private val LEGACY_INVALID_LOGIN = GetTokenResponseJson.Invalid(
|
||||
errorModel = null,
|
||||
legacyErrorModel = GetTokenResponseJson.Invalid.LegacyErrorModel(
|
||||
errorMessage = "Legacy-123",
|
||||
),
|
||||
)
|
||||
|
||||
private val SEND_VERIFICATION_EMAIL_REQUEST = SendVerificationEmailRequestJson(
|
||||
|
||||
@@ -1574,7 +1574,6 @@ class AuthRepositoryTest {
|
||||
errorModel = GetTokenResponseJson.Invalid.ErrorModel(
|
||||
errorMessage = "mock_error_message",
|
||||
),
|
||||
legacyErrorModel = null,
|
||||
)
|
||||
.asSuccess()
|
||||
|
||||
@@ -1617,7 +1616,6 @@ class AuthRepositoryTest {
|
||||
errorModel = GetTokenResponseJson.Invalid.ErrorModel(
|
||||
errorMessage = "new device verification required",
|
||||
),
|
||||
legacyErrorModel = null,
|
||||
)
|
||||
.asSuccess()
|
||||
|
||||
@@ -2401,7 +2399,6 @@ class AuthRepositoryTest {
|
||||
errorModel = GetTokenResponseJson.Invalid.ErrorModel(
|
||||
errorMessage = "mock_error_message",
|
||||
),
|
||||
legacyErrorModel = null,
|
||||
)
|
||||
.asSuccess()
|
||||
|
||||
@@ -2870,7 +2867,6 @@ class AuthRepositoryTest {
|
||||
errorModel = GetTokenResponseJson.Invalid.ErrorModel(
|
||||
errorMessage = "mock_error_message",
|
||||
),
|
||||
legacyErrorModel = null,
|
||||
)
|
||||
.asSuccess()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user