From 913b53bcacafbb21f2340e9f2f600eb6435d7c6a Mon Sep 17 00:00:00 2001 From: David Perez Date: Thu, 6 Jun 2024 11:11:29 -0500 Subject: [PATCH] Update moveToOrganization to be 1-to-1 with the SDK (#1429) --- .../bitwarden/data/vault/datasource/sdk/VaultSdkSource.kt | 2 +- .../data/vault/datasource/sdk/VaultSdkSourceImpl.kt | 4 +--- .../data/vault/repository/VaultRepositoryImpl.kt | 1 + .../data/vault/datasource/sdk/VaultSdkSourceTest.kt | 5 ++--- .../data/vault/repository/VaultRepositoryTest.kt | 8 ++++++++ 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/VaultSdkSource.kt b/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/VaultSdkSource.kt index 4dcb276c41..30d860ccdd 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/VaultSdkSource.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/VaultSdkSource.kt @@ -362,7 +362,7 @@ interface VaultSdkSource { userId: String, organizationId: String, cipherView: CipherView, - ): Result + ): Result /** * Validates that the given password matches the password hash. diff --git a/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/VaultSdkSourceImpl.kt b/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/VaultSdkSourceImpl.kt index 4fe432602d..700bd52db5 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/VaultSdkSourceImpl.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/vault/datasource/sdk/VaultSdkSourceImpl.kt @@ -25,7 +25,6 @@ import com.bitwarden.sdk.BitwardenException import com.bitwarden.sdk.Client import com.bitwarden.sdk.ClientVault import com.x8bit.bitwarden.data.platform.manager.SdkClientManager -import com.x8bit.bitwarden.data.platform.util.flatMap import com.x8bit.bitwarden.data.vault.datasource.sdk.model.InitializeCryptoResult import java.io.File @@ -376,13 +375,12 @@ class VaultSdkSourceImpl( userId: String, organizationId: String, cipherView: CipherView, - ): Result = runCatching { + ): Result = runCatching { getClient(userId = userId) .vault() .ciphers() .moveToOrganization(cipher = cipherView, organizationId = organizationId) } - .flatMap { encryptCipher(userId = userId, cipherView = it) } override suspend fun validatePassword( userId: String, diff --git a/app/src/main/java/com/x8bit/bitwarden/data/vault/repository/VaultRepositoryImpl.kt b/app/src/main/java/com/x8bit/bitwarden/data/vault/repository/VaultRepositoryImpl.kt index 63ceccb6c9..8ada887d38 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/vault/repository/VaultRepositoryImpl.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/vault/repository/VaultRepositoryImpl.kt @@ -822,6 +822,7 @@ class VaultRepositoryImpl( organizationId = organizationId, cipherView = cipherView, ) + .flatMap { vaultSdkSource.encryptCipher(userId = userId, cipherView = it) } .flatMap { cipher -> ciphersService.shareCipher( cipherId = cipherId, diff --git a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/sdk/VaultSdkSourceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/sdk/VaultSdkSourceTest.kt index b70bea4166..edb6194c63 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/sdk/VaultSdkSourceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/sdk/VaultSdkSourceTest.kt @@ -855,12 +855,11 @@ class VaultSdkSourceTest { val userId = "userId" val organizationId = "organizationId" val mockCipher = mockk() - val expectedResult = mockk() + val expectedResult = mockk() val clientCipher = mockk { coEvery { moveToOrganization(cipher = mockCipher, organizationId = organizationId) - } returns mockCipher - coEvery { encrypt(cipherView = mockCipher) } returns expectedResult + } returns expectedResult } every { clientVault.ciphers() } returns clientCipher diff --git a/app/src/test/java/com/x8bit/bitwarden/data/vault/repository/VaultRepositoryTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/vault/repository/VaultRepositoryTest.kt index af06f65623..1ccf2daff3 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/vault/repository/VaultRepositoryTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/vault/repository/VaultRepositoryTest.kt @@ -3112,12 +3112,16 @@ class VaultRepositoryTest { fakeAuthDiskSource.userState = MOCK_USER_STATE val userId = "mockId-1" val organizationId = "organizationId" + val mockCipherView = createMockCipherView(number = 1) coEvery { vaultSdkSource.moveToOrganization( userId = userId, organizationId = organizationId, cipherView = createMockCipherView(number = 1), ) + } returns mockCipherView.asSuccess() + coEvery { + vaultSdkSource.encryptCipher(userId = userId, cipherView = mockCipherView) } returns createMockSdkCipher(number = 1, clock = clock).asSuccess() coEvery { ciphersService.shareCipher( @@ -3156,12 +3160,16 @@ class VaultRepositoryTest { fakeAuthDiskSource.userState = MOCK_USER_STATE val userId = "mockId-1" val organizationId = "organizationId" + val mockCipherView = createMockCipherView(number = 1) coEvery { vaultSdkSource.moveToOrganization( userId = userId, organizationId = organizationId, cipherView = createMockCipherView(number = 1), ) + } returns mockCipherView.asSuccess() + coEvery { + vaultSdkSource.encryptCipher(userId = userId, cipherView = mockCipherView) } returns createMockSdkCipher(number = 1, clock = clock).asSuccess() coEvery { ciphersService.shareCipher(