Create AccountTokensJson for reusability (#1035)

This commit is contained in:
David Perez
2024-06-20 17:08:07 +01:00
committed by Álison Fernandes
parent e45c1034a5
commit 2d54fc4616
16 changed files with 56 additions and 40 deletions
@@ -18,7 +18,7 @@ data class AccountJson(
val profile: Profile,
@SerialName("tokens")
val tokens: Tokens,
val tokens: AccountTokensJson,
@SerialName("settings")
val settings: Settings,
@@ -91,21 +91,6 @@ data class AccountJson(
val userDecryptionOptions: UserDecryptionOptionsJson?,
)
/**
* Container for the user's API tokens.
*
* @property accessToken The user's primary access token.
* @property refreshToken The user's refresh token.
*/
@Serializable
data class Tokens(
@SerialName("accessToken")
val accessToken: String?,
@SerialName("refreshToken")
val refreshToken: String?,
)
/**
* Container for various user settings.
*
@@ -0,0 +1,19 @@
package com.x8bit.bitwarden.data.auth.datasource.disk.model
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
/**
* Container for the user's API tokens.
*
* @property accessToken The user's primary access token.
* @property refreshToken The user's refresh token.
*/
@Serializable
data class AccountTokensJson(
@SerialName("accessToken")
val accessToken: String?,
@SerialName("refreshToken")
val refreshToken: String?,
)
@@ -5,7 +5,7 @@ import android.widget.Toast
import androidx.annotation.StringRes
import com.x8bit.bitwarden.R
import com.x8bit.bitwarden.data.auth.datasource.disk.AuthDiskSource
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.platform.datasource.disk.PushDiskSource
import com.x8bit.bitwarden.data.platform.datasource.disk.SettingsDiskSource
import com.x8bit.bitwarden.data.platform.manager.dispatcher.DispatcherManager
@@ -77,7 +77,7 @@ class UserLogoutManagerImpl(
.accounts[userId]
// Clear the tokens for the current user if present
?.copy(
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = null,
refreshToken = null,
),
@@ -1,6 +1,7 @@
package com.x8bit.bitwarden.data.auth.repository.util
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.EnvironmentUrlDataJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.ForcePasswordResetReason
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
@@ -44,7 +45,7 @@ fun GetTokenResponseJson.Success.toUserState(
kdfParallelism = this.kdfParallelism,
userDecryptionOptions = this.userDecryptionOptions,
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = accessToken,
refreshToken = this.refreshToken,
),
@@ -1,6 +1,6 @@
package com.x8bit.bitwarden.data.auth.repository.util
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
import com.x8bit.bitwarden.data.auth.datasource.network.model.RefreshTokenResponseJson
@@ -27,7 +27,7 @@ fun RefreshTokenResponseJson.toUserStateJson(
name = jwtTokenData.name,
hasPremium = jwtTokenData.hasPremium,
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = accessToken,
refreshToken = this.refreshToken,
),
@@ -3,6 +3,7 @@ package com.x8bit.bitwarden.data.auth.datasource.disk
import androidx.core.content.edit
import app.cash.turbine.test
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.EnvironmentUrlDataJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.ForcePasswordResetReason
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
@@ -912,7 +913,7 @@ private val USER_STATE = UserStateJson(
),
),
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = "accessToken",
refreshToken = "refreshToken",
),
@@ -3,6 +3,7 @@ package com.x8bit.bitwarden.data.auth.manager
import app.cash.turbine.test
import com.bitwarden.core.AuthRequestResponse
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
import com.x8bit.bitwarden.data.auth.datasource.disk.util.FakeAuthDiskSource
import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestsResponseJson
@@ -980,7 +981,7 @@ private val ACCOUNT: AccountJson = AccountJson(
kdfParallelism = 4,
userDecryptionOptions = null,
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = ACCESS_TOKEN,
refreshToken = REFRESH_TOKEN,
),
@@ -5,6 +5,7 @@ import android.widget.Toast
import com.x8bit.bitwarden.R
import com.x8bit.bitwarden.data.auth.datasource.disk.AuthDiskSource
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
import com.x8bit.bitwarden.data.auth.datasource.network.model.KdfTypeJson
import com.x8bit.bitwarden.data.platform.base.FakeDispatcherManager
@@ -136,7 +137,7 @@ class UserLogoutManagerTest {
val updatedAccount = ACCOUNT_1
.copy(
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = null,
refreshToken = null,
),
@@ -201,7 +202,7 @@ private val ACCOUNT_1 = AccountJson(
kdfParallelism = 4,
userDecryptionOptions = null,
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = ACCESS_TOKEN,
refreshToken = REFRESH_TOKEN,
),
@@ -226,7 +227,7 @@ private val ACCOUNT_2 = AccountJson(
kdfParallelism = null,
userDecryptionOptions = null,
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = ACCESS_TOKEN_2,
refreshToken = "refreshToken",
),
@@ -10,6 +10,7 @@ import com.bitwarden.crypto.HashPurpose
import com.bitwarden.crypto.Kdf
import com.bitwarden.crypto.RsaKeyPair
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.EnvironmentUrlDataJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.ForcePasswordResetReason
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
@@ -258,7 +259,7 @@ class AuthRepositoryTest {
// Clearing the tokens of the active state results in the Unauthenticated state
val updatedAccount = ACCOUNT_1.copy(
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = null,
refreshToken = null,
),
@@ -3197,7 +3198,7 @@ class AuthRepositoryTest {
kdfParallelism = 4,
userDecryptionOptions = null,
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = ACCESS_TOKEN,
refreshToken = REFRESH_TOKEN,
),
@@ -3222,7 +3223,7 @@ class AuthRepositoryTest {
kdfParallelism = null,
userDecryptionOptions = null,
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = ACCESS_TOKEN_2,
refreshToken = "refreshToken",
),
@@ -3,6 +3,7 @@ package com.x8bit.bitwarden.data.auth.repository.util
import app.cash.turbine.test
import com.x8bit.bitwarden.data.auth.datasource.disk.AuthDiskSource
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
import com.x8bit.bitwarden.data.auth.datasource.disk.util.FakeAuthDiskSource
import com.x8bit.bitwarden.data.auth.repository.model.Organization
@@ -214,7 +215,7 @@ private val MOCK_PROFILE = AccountJson.Profile(
private val MOCK_ACCOUNT = AccountJson(
profile = MOCK_PROFILE,
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = "accessToken",
refreshToken = "refreshToken",
),
@@ -1,6 +1,7 @@
package com.x8bit.bitwarden.data.auth.repository.util
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.EnvironmentUrlDataJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
import com.x8bit.bitwarden.data.auth.datasource.network.model.GetTokenResponseJson
@@ -102,7 +103,7 @@ private val ACCOUNT_1 = AccountJson(
kdfParallelism = 4,
userDecryptionOptions = null,
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = ACCESS_TOKEN_1,
refreshToken = "refreshToken",
),
@@ -127,7 +128,7 @@ private val ACCOUNT_2 = AccountJson(
kdfParallelism = null,
userDecryptionOptions = null,
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = ACCESS_TOKEN_2,
refreshToken = "refreshToken",
),
@@ -1,6 +1,7 @@
package com.x8bit.bitwarden.data.auth.repository.util
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.EnvironmentUrlDataJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
import com.x8bit.bitwarden.data.auth.datasource.network.model.KdfTypeJson
@@ -94,7 +95,7 @@ private val ACCOUNT_1 = AccountJson(
kdfParallelism = 4,
userDecryptionOptions = null,
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = ACCESS_TOKEN,
refreshToken = REFRESH_TOKEN,
),
@@ -111,7 +112,7 @@ private val ACCOUNT_1_UPDATED = ACCOUNT_1.copy(
name = JWT_TOKEN_DATA.name,
hasPremium = JWT_TOKEN_DATA.hasPremium,
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = ACCESS_TOKEN_UPDATED,
refreshToken = REFRESH_TOKEN_UPDATED,
),
@@ -134,7 +135,7 @@ private val ACCOUNT_2 = AccountJson(
kdfParallelism = null,
userDecryptionOptions = null,
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = "accessToken2",
refreshToken = "refreshToken2",
),
@@ -1,6 +1,7 @@
package com.x8bit.bitwarden.data.auth.repository.util
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.EnvironmentUrlDataJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
import com.x8bit.bitwarden.data.auth.datasource.network.model.KdfTypeJson
@@ -131,7 +132,7 @@ class UserStateJsonExtensionsTest {
every { hasPremium } returns null
every { forcePasswordResetReason } returns null
},
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = "accessToken",
refreshToken = "refreshToken",
),
@@ -207,7 +208,7 @@ class UserStateJsonExtensionsTest {
every { hasPremium } returns true
every { forcePasswordResetReason } returns null
},
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = null,
refreshToken = null,
),
@@ -10,6 +10,7 @@ import com.bitwarden.generators.PasswordGeneratorRequest
import com.bitwarden.generators.UsernameGeneratorRequest
import com.x8bit.bitwarden.data.auth.datasource.disk.AuthDiskSource
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.EnvironmentUrlDataJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.ForcePasswordResetReason
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
@@ -869,7 +870,7 @@ private val USER_STATE = UserStateJson(
),
),
),
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = "accessToken",
refreshToken = "refreshToken",
),
@@ -5,6 +5,7 @@ import com.bitwarden.core.InitUserCryptoMethod
import com.bitwarden.core.InitUserCryptoRequest
import com.bitwarden.crypto.HashPurpose
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
import com.x8bit.bitwarden.data.auth.datasource.disk.util.FakeAuthDiskSource
import com.x8bit.bitwarden.data.auth.datasource.sdk.AuthSdkSource
@@ -1441,7 +1442,7 @@ private val MOCK_PROFILE = AccountJson.Profile(
private val MOCK_ACCOUNT = AccountJson(
profile = MOCK_PROFILE,
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = "accessToken",
refreshToken = "refreshToken",
),
@@ -16,6 +16,7 @@ import com.bitwarden.core.SendType
import com.bitwarden.core.SendView
import com.bitwarden.core.TotpResponse
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.AccountTokensJson
import com.x8bit.bitwarden.data.auth.datasource.disk.model.UserStateJson
import com.x8bit.bitwarden.data.auth.datasource.disk.util.FakeAuthDiskSource
import com.x8bit.bitwarden.data.auth.manager.UserLogoutManager
@@ -5503,7 +5504,7 @@ private val MOCK_PROFILE = AccountJson.Profile(
private val MOCK_ACCOUNT = AccountJson(
profile = MOCK_PROFILE,
tokens = AccountJson.Tokens(
tokens = AccountTokensJson(
accessToken = "accessToken",
refreshToken = "refreshToken",
),