Updated on 2026-08-14

This commit is contained in:
Tangem 2026-04-24 05:01:25 -07:00
parent bc3443c479
commit 2e0bdac248
21 changed files with 752 additions and 30 deletions

View file

@ -29,6 +29,7 @@ import com.tangem.domain.pay.flow.PaymentAccountStatusSupplier
import com.tangem.domain.pay.repository.*
import com.tangem.domain.pay.usecase.GetPaymentAccountCryptoCurrencyStatusUseCase
import com.tangem.domain.pay.usecase.ProduceTangemPayInitialDataUseCase
import com.tangem.domain.pay.usecase.SetTangemPayCardLimitUseCase
import com.tangem.domain.pay.usecase.TangemPayMainScreenCustomerInfoUseCase
import com.tangem.domain.tangempay.GetTangemPayCurrencyStatusUseCase
import com.tangem.domain.tangempay.GetTangemPayCustomerIdUseCase
@ -150,6 +151,14 @@ internal interface TangemPayDataModule {
) {}
}
@Provides
fun provideSetTangemPayCardLimitUseCase(
cardDetailsRepository: TangemPayCardDetailsRepository,
paymentAccountStatusFetcher: PaymentAccountStatusFetcher,
): SetTangemPayCardLimitUseCase {
return SetTangemPayCardLimitUseCase(cardDetailsRepository, paymentAccountStatusFetcher)
}
@Provides
@Singleton
fun provideGetTangemPayCryptoCurrencyStatusUseCase(

View file

@ -14,8 +14,8 @@ import com.tangem.datasource.api.common.config.managers.ApiConfigsManager
import com.tangem.datasource.api.pay.TangemPayApi
import com.tangem.datasource.api.pay.models.request.CardDetailsRequest
import com.tangem.datasource.api.pay.models.request.FreezeUnfreezeCardRequest
import com.tangem.datasource.api.pay.models.request.UpdateCardRequest
import com.tangem.datasource.api.pay.models.request.SetPinRequest
import com.tangem.datasource.api.pay.models.request.UpdateCardDisplayNameRequest
import com.tangem.datasource.api.pay.models.response.FreezeUnfreezeCardResponse
import com.tangem.datasource.api.pay.models.response.OrderResponse.Result.Status
import com.tangem.datasource.local.visa.TangemPayCardFrozenStateStore
@ -41,7 +41,7 @@ import kotlin.time.Duration.Companion.seconds
private const val TAG = "TangemPay: CardDetailsRepository"
@Suppress("LongParameterList")
@Suppress("LongParameterList", "LargeClass")
internal class DefaultTangemPayCardDetailsRepository @Inject constructor(
private val tangemPayApi: TangemPayApi,
private val requestHelper: TangemPayRequestPerformer,
@ -321,15 +321,43 @@ internal class DefaultTangemPayCardDetailsRepository @Inject constructor(
}
override suspend fun updateCardDisplayName(
cardId: String,
userWalletId: UserWalletId,
displayName: CardDisplayName,
): Either<UniversalError, Unit> {
return catch(
block = {
requestHelper.performRequest(userWalletId) { authHeader ->
tangemPayApi.updateCardDisplayName(
tangemPayApi.updateCard(
authHeader = authHeader,
body = UpdateCardDisplayNameRequest(displayName = displayName.value),
body = UpdateCardRequest(
displayName = displayName.value,
),
cardId = cardId,
)
}.fold(
ifLeft = { error -> error.left() },
ifRight = { Unit.right() },
)
},
catch = ::catchException,
)
}
override suspend fun updateCardLimit(
cardId: String,
userWalletId: UserWalletId,
limit: String,
): Either<UniversalError, Unit> {
return catch(
block = {
requestHelper.performRequest(userWalletId) { authHeader ->
tangemPayApi.updateCard(
authHeader = authHeader,
body = UpdateCardRequest(
cardLimit = UpdateCardRequest.CardLimit(limit),
),
cardId = cardId,
)
}.fold(
ifLeft = { error -> error.left() },