From 1309a7375abc60f0f8c9fbd1e2b830c7b21d9286 Mon Sep 17 00:00:00 2001 From: labreu-bc <97444041+labreu-bc@users.noreply.github.com> Date: Wed, 16 Nov 2022 15:17:17 +0000 Subject: [PATCH] refactor(blockchain card): AND-6766 Use query parameters for Card webview (#4105) * Use query parameters instead of path parameters for the card webview * ktlint * fix tests --- .../api/services/BlockchainCardService.kt | 17 +++++++++++++---- .../data/BlockchainCardRepositoryImpl.kt | 10 ++++++++-- .../domain/BlockchainCardRepository.kt | 4 +++- .../composables/managecard/ManageCardScreen.kt | 8 +------- .../viewmodel/managecard/ManageCardViewModel.kt | 3 ++- .../data/BlockchainCardRepositoryImplTest.kt | 5 +++-- 6 files changed, 30 insertions(+), 17 deletions(-) diff --git a/blockchainApi/src/main/java/com/blockchain/api/services/BlockchainCardService.kt b/blockchainApi/src/main/java/com/blockchain/api/services/BlockchainCardService.kt index 698d8d2b70..cb26c69177 100644 --- a/blockchainApi/src/main/java/com/blockchain/api/services/BlockchainCardService.kt +++ b/blockchainApi/src/main/java/com/blockchain/api/services/BlockchainCardService.kt @@ -65,14 +65,23 @@ class BlockchainCardService internal constructor( fun getCardWidgetUrl( widgetToken: String, last4Digits: String, - userFullName: String - ): Outcome = Outcome.Success(buildCardWidgetUrl(widgetToken, last4Digits, userFullName)) + userFullName: String, + cardType: String + ): Outcome = Outcome.Success( + buildCardWidgetUrl(widgetToken, last4Digits, userFullName, cardType) + ) private fun buildCardWidgetUrl( widgetToken: String, last4Digits: String, - userFullName: String - ): String = "${walletHelperUrl.url}wallet-helper/marqeta-card/#/$widgetToken/$last4Digits/$userFullName" + userFullName: String, + cardType: String + ): String = + "${walletHelperUrl.url}wallet-helper/marqeta-card/#/" + + "?token=$widgetToken" + + "&last4=$last4Digits" + + "&fullName=$userFullName" + + "&cardType=$cardType" suspend fun getEligibleAccounts( cardId: String diff --git a/blockchainCard/src/main/java/com/blockchain/blockchaincard/data/BlockchainCardRepositoryImpl.kt b/blockchainCard/src/main/java/com/blockchain/blockchaincard/data/BlockchainCardRepositoryImpl.kt index 6329d5d72a..a4eec44a1c 100644 --- a/blockchainCard/src/main/java/com/blockchain/blockchaincard/data/BlockchainCardRepositoryImpl.kt +++ b/blockchainCard/src/main/java/com/blockchain/blockchaincard/data/BlockchainCardRepositoryImpl.kt @@ -141,12 +141,18 @@ internal class BlockchainCardRepositoryImpl( override suspend fun getCardWidgetUrl( cardId: String, last4Digits: String, - userFullName: String + userFullName: String, + cardType: BlockchainCardType ): Outcome = blockchainCardService.getCardWidgetToken( cardId = cardId, ).flatMap { widgetToken -> - blockchainCardService.getCardWidgetUrl(widgetToken.token, last4Digits, userFullName) + blockchainCardService.getCardWidgetUrl( + widgetToken = widgetToken.token, + last4Digits = last4Digits, + userFullName = userFullName, + cardType = cardType.name + ) }.wrapBlockchainCardError() override suspend fun getEligibleTradingAccounts( diff --git a/blockchainCard/src/main/java/com/blockchain/blockchaincard/domain/BlockchainCardRepository.kt b/blockchainCard/src/main/java/com/blockchain/blockchaincard/domain/BlockchainCardRepository.kt index 8251bb0b09..8b0b011a4d 100644 --- a/blockchainCard/src/main/java/com/blockchain/blockchaincard/domain/BlockchainCardRepository.kt +++ b/blockchainCard/src/main/java/com/blockchain/blockchaincard/domain/BlockchainCardRepository.kt @@ -13,6 +13,7 @@ import com.blockchain.blockchaincard.domain.models.BlockchainCardPostMessageType import com.blockchain.blockchaincard.domain.models.BlockchainCardProduct import com.blockchain.blockchaincard.domain.models.BlockchainCardStatement import com.blockchain.blockchaincard.domain.models.BlockchainCardTransaction +import com.blockchain.blockchaincard.domain.models.BlockchainCardType import com.blockchain.coincore.AccountBalance import com.blockchain.coincore.BlockchainAccount import com.blockchain.coincore.FiatAccount @@ -50,7 +51,8 @@ interface BlockchainCardRepository { suspend fun getCardWidgetUrl( cardId: String, last4Digits: String, - userFullName: String + userFullName: String, + cardType: BlockchainCardType ): Outcome suspend fun getEligibleTradingAccounts( diff --git a/blockchainCard/src/main/java/com/blockchain/blockchaincard/ui/composables/managecard/ManageCardScreen.kt b/blockchainCard/src/main/java/com/blockchain/blockchaincard/ui/composables/managecard/ManageCardScreen.kt index e8380dd2f4..9009af3b74 100644 --- a/blockchainCard/src/main/java/com/blockchain/blockchaincard/ui/composables/managecard/ManageCardScreen.kt +++ b/blockchainCard/src/main/java/com/blockchain/blockchaincard/ui/composables/managecard/ManageCardScreen.kt @@ -18,7 +18,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.requiredHeight import androidx.compose.foundation.layout.requiredHeightIn import androidx.compose.foundation.layout.requiredWidth import androidx.compose.foundation.layout.size @@ -255,12 +254,7 @@ fun ManageCard( disableScrolling = true, onWebMessageReceived = onWebMessageReceived, overrideTextZoom = true, - modifier = Modifier - .padding( - top = AppTheme.dimensions.smallSpacing - ) - .requiredHeight(355.dp) - .requiredWidth(400.dp), + modifier = Modifier.fillMaxWidth(), ) } } diff --git a/blockchainCard/src/main/java/com/blockchain/blockchaincard/viewmodel/managecard/ManageCardViewModel.kt b/blockchainCard/src/main/java/com/blockchain/blockchaincard/viewmodel/managecard/ManageCardViewModel.kt index 10a6635b4e..36908fc434 100644 --- a/blockchainCard/src/main/java/com/blockchain/blockchaincard/viewmodel/managecard/ManageCardViewModel.kt +++ b/blockchainCard/src/main/java/com/blockchain/blockchaincard/viewmodel/managecard/ManageCardViewModel.kt @@ -211,7 +211,8 @@ class ManageCardViewModel(private val blockchainCardRepository: BlockchainCardRe blockchainCardRepository.getCardWidgetUrl( cardId = modelState.currentCard.id, last4Digits = modelState.currentCard.last4, - userFullName = firstAndLastName + userFullName = firstAndLastName, + cardType = modelState.currentCard.type ) }.fold( onFailure = { error -> diff --git a/blockchainCard/src/test/com/blockchain/blockchaincard/data/BlockchainCardRepositoryImplTest.kt b/blockchainCard/src/test/com/blockchain/blockchaincard/data/BlockchainCardRepositoryImplTest.kt index 71a356c1c5..baa52a2890 100644 --- a/blockchainCard/src/test/com/blockchain/blockchaincard/data/BlockchainCardRepositoryImplTest.kt +++ b/blockchainCard/src/test/com/blockchain/blockchaincard/data/BlockchainCardRepositoryImplTest.kt @@ -292,12 +292,13 @@ class BlockchainCardRepositoryImplTest { coEvery { blockchainCardService.getCardWidgetToken(any()) } returns Outcome.Success( cardWidgetTokenDto ) - coEvery { blockchainCardService.getCardWidgetUrl(any(), any(), any()) } returns Outcome.Success(cardWidgetUrl) + coEvery { blockchainCardService.getCardWidgetUrl(any(), any(), any(), any()) } returns Outcome.Success(cardWidgetUrl) val cardWidgetUrlUnderTest = blockchainCardRepository.getCardWidgetUrl( cardId = "cardId", last4Digits = "1234", - userFullName = "userFullName" + userFullName = "userFullName", + cardType = BlockchainCardType.VIRTUAL ) assertEquals(cardWidgetUrlUnderTest, Outcome.Success(cardWidgetUrl))