From 7504fe1822f05e90f8dee1dfb06bc221b59ac335 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 25 Sep 2024 20:30:40 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../domain/feedback/FeedbackDataBuilder.kt | 5 ++++ .../feedback/models/FeedbackEmailType.kt | 6 ++++ .../utils/EmailMessageBodyResolver.kt | 30 +++++++++++++++++++ .../utils/EmailMessageTitleResolver.kt | 1 + .../feedback/utils/EmailSubjectResolver.kt | 6 ++-- 5 files changed, 46 insertions(+), 2 deletions(-) diff --git a/domain/feedback/src/main/java/com/tangem/domain/feedback/FeedbackDataBuilder.kt b/domain/feedback/src/main/java/com/tangem/domain/feedback/FeedbackDataBuilder.kt index 91f1f6b990..654e910d2d 100644 --- a/domain/feedback/src/main/java/com/tangem/domain/feedback/FeedbackDataBuilder.kt +++ b/domain/feedback/src/main/java/com/tangem/domain/feedback/FeedbackDataBuilder.kt @@ -95,6 +95,11 @@ internal class FeedbackDataBuilder { ) } + fun addSwapInfo(providerName: String, txId: String) { + builder.appendKeyValue("Provider", providerName) + builder.appendKeyValue("Transaction ID", txId) + } + fun addDelimiter(): StringBuilder = builder.appendDelimiter() fun build(): String = builder.trimEnd().toString() diff --git a/domain/feedback/src/main/java/com/tangem/domain/feedback/models/FeedbackEmailType.kt b/domain/feedback/src/main/java/com/tangem/domain/feedback/models/FeedbackEmailType.kt index 735365aeac..6abec03efc 100644 --- a/domain/feedback/src/main/java/com/tangem/domain/feedback/models/FeedbackEmailType.kt +++ b/domain/feedback/src/main/java/com/tangem/domain/feedback/models/FeedbackEmailType.kt @@ -30,4 +30,10 @@ sealed interface FeedbackEmailType { val transactionTypes: List, val unsignedTransactions: List, ) : FeedbackEmailType + + data class SwapProblem( + override val cardInfo: CardInfo, + val providerName: String, + val txId: String, + ) : FeedbackEmailType } \ No newline at end of file diff --git a/domain/feedback/src/main/java/com/tangem/domain/feedback/utils/EmailMessageBodyResolver.kt b/domain/feedback/src/main/java/com/tangem/domain/feedback/utils/EmailMessageBodyResolver.kt index ae17e1da30..5f9e52a0e2 100644 --- a/domain/feedback/src/main/java/com/tangem/domain/feedback/utils/EmailMessageBodyResolver.kt +++ b/domain/feedback/src/main/java/com/tangem/domain/feedback/utils/EmailMessageBodyResolver.kt @@ -29,6 +29,7 @@ internal class EmailMessageBodyResolver( type.transactionTypes, type.unsignedTransactions, ) + is FeedbackEmailType.SwapProblem -> addSwapProblemBody(type.cardInfo, type.providerName, type.txId) } return build() @@ -108,6 +109,35 @@ internal class EmailMessageBodyResolver( addPhoneInfo(phoneInfo = feedbackRepository.getPhoneInfo()) } + private suspend fun FeedbackDataBuilder.addSwapProblemBody( + cardInfo: CardInfo, + providerName: String, + txId: String, + ) { + addCardInfo(cardInfo) + addDelimiter() + + val userWalletId = requireNotNull(cardInfo.userWalletId) { "UserWalletId must be not null" } + val blockchainError = feedbackRepository.getBlockchainErrorInfo(userWalletId = userWalletId) + val blockchainInfo = blockchainError?.let { + feedbackRepository.getBlockchainInfo( + userWalletId = userWalletId, + blockchainId = blockchainError.blockchainId, + derivationPath = blockchainError.derivationPath, + ) + } + + if (blockchainInfo != null) { + addBlockchainError(blockchainInfo, blockchainError) + addDelimiter() + } + + addSwapInfo(providerName, txId) + addDelimiter() + + addPhoneInfo(phoneInfo = feedbackRepository.getPhoneInfo()) + } + private fun FeedbackDataBuilder.addCardAndPhoneInfo(cardInfo: CardInfo) { addCardInfo(cardInfo) addDelimiter() diff --git a/domain/feedback/src/main/java/com/tangem/domain/feedback/utils/EmailMessageTitleResolver.kt b/domain/feedback/src/main/java/com/tangem/domain/feedback/utils/EmailMessageTitleResolver.kt index bfa9cfdede..5f052face7 100644 --- a/domain/feedback/src/main/java/com/tangem/domain/feedback/utils/EmailMessageTitleResolver.kt +++ b/domain/feedback/src/main/java/com/tangem/domain/feedback/utils/EmailMessageTitleResolver.kt @@ -21,6 +21,7 @@ internal class EmailMessageTitleResolver(private val resources: Resources) { is FeedbackEmailType.ScanningProblem -> R.string.feedback_preface_scan_failed is FeedbackEmailType.TransactionSendingProblem, is FeedbackEmailType.StakingProblem, + is FeedbackEmailType.SwapProblem, -> R.string.feedback_preface_tx_failed } .let(resources::getString) diff --git a/domain/feedback/src/main/java/com/tangem/domain/feedback/utils/EmailSubjectResolver.kt b/domain/feedback/src/main/java/com/tangem/domain/feedback/utils/EmailSubjectResolver.kt index 503f1f514b..ba9c710413 100644 --- a/domain/feedback/src/main/java/com/tangem/domain/feedback/utils/EmailSubjectResolver.kt +++ b/domain/feedback/src/main/java/com/tangem/domain/feedback/utils/EmailSubjectResolver.kt @@ -25,8 +25,10 @@ internal class EmailSubjectResolver(private val resources: Resources) { } is FeedbackEmailType.RateCanBeBetter -> R.string.feedback_subject_rate_negative is FeedbackEmailType.ScanningProblem -> R.string.feedback_subject_scan_failed - is FeedbackEmailType.TransactionSendingProblem -> R.string.feedback_subject_tx_failed - is FeedbackEmailType.StakingProblem -> R.string.feedback_subject_tx_failed + is FeedbackEmailType.TransactionSendingProblem, + is FeedbackEmailType.StakingProblem, + is FeedbackEmailType.SwapProblem, + -> R.string.feedback_subject_tx_failed } .let(resources::getString) }