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(
|
fun provideCreateVirtualAccountOrderUseCase(
|
||||||
onboardingRepository: OnboardingRepository,
|
onboardingRepository: OnboardingRepository,
|
||||||
pollingUseCase: StartTangemPayOrderPollingUseCase,
|
pollingUseCase: StartTangemPayOrderPollingUseCase,
|
||||||
|
appCoroutineScope: AppCoroutineScope,
|
||||||
): CreateVirtualAccountOrderUseCase {
|
): CreateVirtualAccountOrderUseCase {
|
||||||
return CreateVirtualAccountOrderUseCase(
|
return CreateVirtualAccountOrderUseCase(
|
||||||
onboardingRepository = onboardingRepository,
|
onboardingRepository = onboardingRepository,
|
||||||
pollingUseCase = pollingUseCase,
|
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.model.TangemPayOrderInfo
|
||||||
import com.tangem.domain.pay.repository.OnboardingRepository
|
import com.tangem.domain.pay.repository.OnboardingRepository
|
||||||
import com.tangem.domain.visa.error.VisaApiError
|
import com.tangem.domain.visa.error.VisaApiError
|
||||||
|
import com.tangem.utils.coroutines.AppCoroutineScope
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -20,6 +22,7 @@ import java.util.UUID
|
||||||
class CreateVirtualAccountOrderUseCase(
|
class CreateVirtualAccountOrderUseCase(
|
||||||
private val onboardingRepository: OnboardingRepository,
|
private val onboardingRepository: OnboardingRepository,
|
||||||
private val pollingUseCase: StartTangemPayOrderPollingUseCase,
|
private val pollingUseCase: StartTangemPayOrderPollingUseCase,
|
||||||
|
private val appCoroutineScope: AppCoroutineScope,
|
||||||
) {
|
) {
|
||||||
suspend operator fun invoke(
|
suspend operator fun invoke(
|
||||||
userWalletId: UserWalletId,
|
userWalletId: UserWalletId,
|
||||||
|
|
@ -33,6 +36,7 @@ class CreateVirtualAccountOrderUseCase(
|
||||||
idempotencyKey = UUID.randomUUID().toString(),
|
idempotencyKey = UUID.randomUUID().toString(),
|
||||||
).bind()
|
).bind()
|
||||||
onboardingRepository.storeVirtualAccountOrderId(userWalletId = userWalletId, vaOrderId = vaOrderId)
|
onboardingRepository.storeVirtualAccountOrderId(userWalletId = userWalletId, vaOrderId = vaOrderId)
|
||||||
|
appCoroutineScope.launch {
|
||||||
pollingUseCase.invoke(
|
pollingUseCase.invoke(
|
||||||
order = TangemPayOrderInfo(orderId = vaOrderId, orderStatus = OrderStatus.NEW),
|
order = TangemPayOrderInfo(orderId = vaOrderId, orderStatus = OrderStatus.NEW),
|
||||||
userWalletId = userWalletId,
|
userWalletId = userWalletId,
|
||||||
|
|
@ -40,3 +44,4 @@ class CreateVirtualAccountOrderUseCase(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
@ -6,6 +6,7 @@ import com.google.common.truth.Truth.assertThat
|
||||||
import com.tangem.domain.models.wallet.UserWalletId
|
import com.tangem.domain.models.wallet.UserWalletId
|
||||||
import com.tangem.domain.pay.repository.OnboardingRepository
|
import com.tangem.domain.pay.repository.OnboardingRepository
|
||||||
import com.tangem.domain.visa.error.VisaApiError
|
import com.tangem.domain.visa.error.VisaApiError
|
||||||
|
import com.tangem.test.core.TestAppCoroutineScope
|
||||||
import io.mockk.coEvery
|
import io.mockk.coEvery
|
||||||
import io.mockk.coVerify
|
import io.mockk.coVerify
|
||||||
import io.mockk.mockk
|
import io.mockk.mockk
|
||||||
|
|
@ -16,7 +17,11 @@ internal class CreateVirtualAccountOrderUseCaseTest {
|
||||||
|
|
||||||
private val onboardingRepository: OnboardingRepository = mockk(relaxUnitFun = true)
|
private val onboardingRepository: OnboardingRepository = mockk(relaxUnitFun = true)
|
||||||
private val pollingUseCase: StartTangemPayOrderPollingUseCase = mockk(relaxed = 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 userWalletId = UserWalletId("1234567890ABCDEF")
|
||||||
private val paymentAccountAddress = "0xcollateral"
|
private val paymentAccountAddress = "0xcollateral"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue