Updated on 2026-08-14
This commit is contained in:
parent
bd13529d69
commit
0bd23be25f
3 changed files with 17 additions and 5 deletions
|
|
@ -298,10 +298,12 @@ internal interface TangemPayDataModule {
|
|||
fun provideCreateVirtualAccountOrderUseCase(
|
||||
onboardingRepository: OnboardingRepository,
|
||||
pollingUseCase: StartTangemPayOrderPollingUseCase,
|
||||
appCoroutineScope: AppCoroutineScope,
|
||||
): CreateVirtualAccountOrderUseCase {
|
||||
return CreateVirtualAccountOrderUseCase(
|
||||
onboardingRepository = onboardingRepository,
|
||||
pollingUseCase = pollingUseCase,
|
||||
appCoroutineScope = appCoroutineScope,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import com.tangem.domain.pay.model.OrderStatus
|
|||
import com.tangem.domain.pay.model.TangemPayOrderInfo
|
||||
import com.tangem.domain.pay.repository.OnboardingRepository
|
||||
import com.tangem.domain.visa.error.VisaApiError
|
||||
import com.tangem.utils.coroutines.AppCoroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.UUID
|
||||
|
||||
/**
|
||||
|
|
@ -20,6 +22,7 @@ import java.util.UUID
|
|||
class CreateVirtualAccountOrderUseCase(
|
||||
private val onboardingRepository: OnboardingRepository,
|
||||
private val pollingUseCase: StartTangemPayOrderPollingUseCase,
|
||||
private val appCoroutineScope: AppCoroutineScope,
|
||||
) {
|
||||
suspend operator fun invoke(
|
||||
userWalletId: UserWalletId,
|
||||
|
|
@ -33,10 +36,12 @@ class CreateVirtualAccountOrderUseCase(
|
|||
idempotencyKey = UUID.randomUUID().toString(),
|
||||
).bind()
|
||||
onboardingRepository.storeVirtualAccountOrderId(userWalletId = userWalletId, vaOrderId = vaOrderId)
|
||||
pollingUseCase.invoke(
|
||||
order = TangemPayOrderInfo(orderId = vaOrderId, orderStatus = OrderStatus.NEW),
|
||||
userWalletId = userWalletId,
|
||||
)
|
||||
appCoroutineScope.launch {
|
||||
pollingUseCase.invoke(
|
||||
order = TangemPayOrderInfo(orderId = vaOrderId, orderStatus = OrderStatus.NEW),
|
||||
userWalletId = userWalletId,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@ import com.google.common.truth.Truth.assertThat
|
|||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
import com.tangem.domain.pay.repository.OnboardingRepository
|
||||
import com.tangem.domain.visa.error.VisaApiError
|
||||
import com.tangem.test.core.TestAppCoroutineScope
|
||||
import io.mockk.coEvery
|
||||
import io.mockk.coVerify
|
||||
import io.mockk.mockk
|
||||
|
|
@ -16,7 +17,11 @@ internal class CreateVirtualAccountOrderUseCaseTest {
|
|||
|
||||
private val onboardingRepository: OnboardingRepository = mockk(relaxUnitFun = true)
|
||||
private val pollingUseCase: StartTangemPayOrderPollingUseCase = mockk(relaxed = true)
|
||||
private val useCase = CreateVirtualAccountOrderUseCase(onboardingRepository, pollingUseCase)
|
||||
private val useCase = CreateVirtualAccountOrderUseCase(
|
||||
onboardingRepository = onboardingRepository,
|
||||
pollingUseCase = pollingUseCase,
|
||||
appCoroutineScope = TestAppCoroutineScope(),
|
||||
)
|
||||
|
||||
private val userWalletId = UserWalletId("1234567890ABCDEF")
|
||||
private val paymentAccountAddress = "0xcollateral"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue