Create AccountTokensJson for reusability (#1035)

This commit is contained in:
David Perez 2024-02-16 16:59:28 -06:00 committed by Álison Fernandes
parent e45c1034a5
commit 2d54fc4616
16 changed files with 56 additions and 40 deletions

View file

@ -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.
*

View file

@ -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?,
)

View file

@ -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,
),

View file

@ -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,
),

View file

@ -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,
),

View file

@ -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",
),

View file

@ -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,
),

View file

@ -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",
),

View file

@ -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",
),

View file

@ -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",
),

View file

@ -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",
),

View file

@ -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",
),

View file

@ -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,
),

View file

@ -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",
),

View file

@ -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",
),

View file

@ -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",
),