Updated on 2026-08-14

This commit is contained in:
Tangem 2026-02-05 16:49:02 +04:00
parent a5389365f4
commit 5346881a57
17 changed files with 158 additions and 55 deletions

View file

@ -4,6 +4,7 @@ import com.tangem.data.pay.DefaultTangemPayCryptoCurrencyFactory
import com.tangem.data.pay.DefaultTangemPayEligibilityManager
import com.tangem.data.pay.repository.*
import com.tangem.data.pay.usecase.DefaultGetTangemPayCurrencyStatusUseCase
import com.tangem.data.pay.usecase.DefaultGetTangemPayCustomerIdUseCase
import com.tangem.data.pay.usecase.DefaultTangemPayWithdrawUseCase
import com.tangem.domain.pay.TangemPayCryptoCurrencyFactory
import com.tangem.domain.pay.TangemPayEligibilityManager
@ -11,6 +12,7 @@ import com.tangem.domain.pay.repository.*
import com.tangem.domain.pay.usecase.ProduceTangemPayInitialDataUseCase
import com.tangem.domain.pay.usecase.TangemPayMainScreenCustomerInfoUseCase
import com.tangem.domain.tangempay.GetTangemPayCurrencyStatusUseCase
import com.tangem.domain.tangempay.GetTangemPayCustomerIdUseCase
import com.tangem.domain.tangempay.TangemPayWithdrawUseCase
import com.tangem.domain.tangempay.repository.TangemPayTxHistoryRepository
import com.tangem.security.DeviceSecurityInfoProvider
@ -65,6 +67,10 @@ internal interface TangemPayDataModule {
@Singleton
fun bindTangemPayWithdrawUseCase(impl: DefaultTangemPayWithdrawUseCase): TangemPayWithdrawUseCase
@Binds
@Singleton
fun bindGetTangemPayCustomerIdUseCase(impl: DefaultGetTangemPayCustomerIdUseCase): GetTangemPayCustomerIdUseCase
@Binds
@Singleton
fun bindTangemPayEligibilityManager(impl: DefaultTangemPayEligibilityManager): TangemPayEligibilityManager

View file

@ -0,0 +1,25 @@
package com.tangem.data.pay.usecase
import arrow.core.Either
import arrow.core.left
import arrow.core.right
import com.tangem.core.error.UniversalError
import com.tangem.domain.models.wallet.UserWalletId
import com.tangem.domain.pay.repository.OnboardingRepository
import com.tangem.domain.tangempay.GetTangemPayCustomerIdUseCase
import com.tangem.domain.visa.error.VisaApiError
import javax.inject.Inject
internal class DefaultGetTangemPayCustomerIdUseCase @Inject constructor(
private val tangemPayOnboardingRepository: OnboardingRepository,
) : GetTangemPayCustomerIdUseCase {
override fun invoke(userWalletId: UserWalletId): Either<UniversalError, String> {
val customerId = tangemPayOnboardingRepository.getSavedCustomerInfo(userWalletId)?.customerId
return if (customerId.isNullOrEmpty()) {
VisaApiError.CustomerIdUnavailable.left()
} else {
customerId.right()
}
}
}