TP-53401 | Shaurya | purposeCode in SendMoney flow (#9237)

This commit is contained in:
Shaurya Rehan
2024-01-05 17:11:10 +05:30
committed by GitHub
parent 19c18c56d3
commit a3b1d57bb3
3 changed files with 61 additions and 28 deletions

View File

@@ -545,9 +545,11 @@ class NaviPayAnalytics private constructor() {
}
fun onCheckBalanceAccountSelectLand(countOfAccount: Int) {
NaviTrackEvent.trackEventOnClickStream("NaviPay_CheckBalance_Account_select_Landed", mapOf(
Pair("no_of_accounts_linked :", countOfAccount.toString())
))
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_CheckBalance_Account_select_Landed", mapOf(
Pair("no_of_accounts_linked :", countOfAccount.toString())
)
)
}
fun onCheckBalanceAccountClicked(account: LinkedAccountEntity, isMpinSet: Boolean) {
@@ -1354,47 +1356,63 @@ class NaviPayAnalytics private constructor() {
}
// This class handles all the events for the NaviPayTransactionDetailsScreen and NaviPayPaymentStatusScreen
inner class NaviPayTransactionDetailsSectionBase {
inner class NaviPayTransactionDetailsSectionBase {
// Common events starts from here for both screens
fun onCheckBalanceClicked(source: String) {
NaviTrackEvent.trackEventOnClickStream("NaviPay_TransactionDetailSection_CheckBalance_Clicked",
mapOf("source" to source))
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_TransactionDetailSection_CheckBalance_Clicked",
mapOf("source" to source)
)
}
fun onShareReceiptClicked(source: String) {
NaviTrackEvent.trackEventOnClickStream("NaviPay_TransactionDetailSection_ShareReceipt_Clicked",
mapOf("source" to source))
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_TransactionDetailSection_ShareReceipt_Clicked",
mapOf("source" to source)
)
}
fun onTransactionHistoryClicked(source: String) {
NaviTrackEvent.trackEventOnClickStream("NaviPay_TransactionDetailSection_TransactionHistory_Clicked",
mapOf("source" to source))
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_TransactionDetailSection_TransactionHistory_Clicked",
mapOf("source" to source)
)
}
fun onPayAgainClicked(source: String) {
NaviTrackEvent.trackEventOnClickStream("NaviPay_TransactionDetailSection_PayAgain_Clicked",
mapOf("source" to source))
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_TransactionDetailSection_PayAgain_Clicked",
mapOf("source" to source)
)
}
fun onUmnIdClicked(source: String) {
NaviTrackEvent.trackEventOnClickStream("NaviPay_TransactionDetailSection_UmnId_Clicked",
mapOf("source" to source))
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_TransactionDetailSection_UmnId_Clicked",
mapOf("source" to source)
)
}
fun onCopyUPITransactionIdClicked(source: String) {
NaviTrackEvent.trackEventOnClickStream("NaviPay_TransactionDetailSection_UPIRequestId_Clicked",
mapOf("source" to source))
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_TransactionDetailSection_UPIRequestId_Clicked",
mapOf("source" to source)
)
}
fun onCopyNaviTransactionIdClicked(source: String) {
NaviTrackEvent.trackEventOnClickStream("NaviPay_TransactionDetailSection_NaviTransactionId_Clicked",
mapOf("source" to source))
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_TransactionDetailSection_NaviTransactionId_Clicked",
mapOf("source" to source)
)
}
fun onCopyVpaClicked(source: String) {
NaviTrackEvent.trackEventOnClickStream("NaviPay_TransactionDetails_CopyVPA_Clicked",
mapOf("source" to source))
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_TransactionDetails_CopyVPA_Clicked",
mapOf("source" to source)
)
}
// Common events ends here for both screens
@@ -1457,7 +1475,8 @@ class NaviPayAnalytics private constructor() {
fun onPaymentSuccess(
source: SendMoneyScreenSource, transactionType: UpiTransactionType,
upiRequestId: String
upiRequestId: String,
purposeCode: String
) {
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_SendMoney_PaymentSuccess",
@@ -1465,6 +1484,7 @@ class NaviPayAnalytics private constructor() {
"source" to (source::class.simpleName ?: ""),
"transactionType" to transactionType.name,
"upiRequestId" to upiRequestId,
"purposeCode" to purposeCode,
"source2" to source.asString()
)
)
@@ -1473,7 +1493,8 @@ class NaviPayAnalytics private constructor() {
fun onPaymentDeclined(
source: SendMoneyScreenSource,
transactionType: UpiTransactionType,
upiRequestId: String
upiRequestId: String,
purposeCode: String
) {
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_SendMoney_PaymentDeclined",
@@ -1481,7 +1502,8 @@ class NaviPayAnalytics private constructor() {
Pair("source", source::class.simpleName ?: ""),
Pair("transactionType", transactionType.name),
"upiRequestId" to upiRequestId,
"source2" to source.asString()
"source2" to source.asString(),
"purposeCode" to purposeCode
)
)
}
@@ -1489,7 +1511,8 @@ class NaviPayAnalytics private constructor() {
fun onPaymentPending(
source: SendMoneyScreenSource,
transactionType: UpiTransactionType,
upiRequestId: String
upiRequestId: String,
purposeCode: String
) {
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_SendMoney_PaymentPending",
@@ -1497,6 +1520,7 @@ class NaviPayAnalytics private constructor() {
Pair("source", source::class.simpleName ?: ""),
Pair("transactionType", transactionType.name),
"upiRequestId" to upiRequestId,
"purposeCode" to purposeCode,
"source2" to source.asString()
)
)
@@ -1538,6 +1562,7 @@ class NaviPayAnalytics private constructor() {
transactionType: UpiTransactionType,
upiRequestId: String,
payButtonSource: String,
purposeCode: String
) {
NaviTrackEvent.trackEventOnClickStream(
"NaviPay_SendMoney_PayClicked",
@@ -1546,6 +1571,7 @@ class NaviPayAnalytics private constructor() {
Pair("transactionType", transactionType.name),
Pair("upiRequestId", upiRequestId),
Pair("payButtonSource", payButtonSource),
Pair("purposeCode", purposeCode),
"source2" to source.asString()
)
)

View File

@@ -64,10 +64,12 @@ import com.navi.pay.management.common.sendmoney.model.view.UpiTransactionType
import com.navi.pay.management.common.sendmoney.util.SendMoneyBottomSheetType
import com.navi.pay.management.common.sendmoney.util.SendMoneyUtils.bottomSheetScrimColor
import com.navi.pay.management.common.sendmoney.viewmodel.SendMoneyViewModel
import com.navi.pay.management.lite.util.UPILitePurposeCodes
import com.navi.pay.management.transactionhistory.model.view.TransactionEntity
import com.navi.pay.onboarding.account.detail.model.view.LinkedAccountEntity
import com.navi.pay.utils.ACTION_PIN_SET
import com.navi.pay.utils.COLLECT_REQUEST_ERROR
import com.navi.pay.utils.DEFAULT_UPI_PURPOSE
import com.navi.pay.utils.INTENT_OR_SCAN_PAY_TRANSACTION_ERROR
import com.navi.pay.utils.INVALID_VPA
import com.navi.pay.utils.NAVI_PAY_PAYMENT_PENDING_LOTTIE
@@ -424,7 +426,8 @@ private fun LoadingStates(
naviPayAnalytics.onPaymentSuccess(
source = sendMoneyScreenSource,
transactionType = transactionType,
upiRequestId = screenState.transactionEntity.transactionDetailEntity.metaData.upiReqId
upiRequestId = screenState.transactionEntity.transactionDetailEntity.metaData.upiReqId,
purposeCode = screenState.transactionEntity.transactionDetailEntity.metaData.purposeCode
)
val mediaPlayer = remember {
@@ -456,7 +459,8 @@ private fun LoadingStates(
naviPayAnalytics.onPaymentPending(
source = sendMoneyScreenSource,
transactionType = transactionType,
upiRequestId = screenState.transactionEntity.transactionDetailEntity.metaData.upiReqId
upiRequestId = screenState.transactionEntity.transactionDetailEntity.metaData.upiReqId,
purposeCode = screenState.transactionEntity.transactionDetailEntity.metaData.purposeCode
)
val transactionEntity = screenState.transactionEntity
goToPaymentSummaryScreen(
@@ -473,7 +477,8 @@ private fun LoadingStates(
naviPayAnalytics.onPaymentDeclined(
source = sendMoneyScreenSource,
transactionType = transactionType,
upiRequestId = screenState.transactionEntity.transactionDetailEntity.metaData.upiReqId
upiRequestId = screenState.transactionEntity.transactionDetailEntity.metaData.upiReqId,
purposeCode = screenState.transactionEntity.transactionDetailEntity.metaData.purposeCode
)
resultNavigator.navigateBack(result = SendMoneyUserAction.PaymentDeclined)
}

View File

@@ -105,6 +105,7 @@ import com.navi.pay.utils.BANK_ACCOUNT_UNIQUE_ID
import com.navi.pay.utils.COLLECT_REQUEST_ERROR
import com.navi.pay.utils.ConfigKey
import com.navi.pay.utils.DEFAULT_UPI_CURRENCY
import com.navi.pay.utils.DEFAULT_UPI_PURPOSE
import com.navi.pay.utils.INTENT_OR_SCAN_PAY_TRANSACTION_ERROR
import com.navi.pay.utils.INVALID_VPA
import com.navi.pay.utils.KEY_IS_FIRST_TRANSACTION_SUCCESSFUL
@@ -922,7 +923,8 @@ class SendMoneyViewModel @Inject constructor(
source = source,
transactionType = transactionType,
upiRequestId = upiRequestId,
payButtonSource = payButtonSource
payButtonSource = payButtonSource,
purposeCode = if (isPaymentFromLiteAccount) UPILitePurposeCodes.SEND_MONEY.purposeCode else DEFAULT_UPI_PURPOSE
)
// TODO: Try directly updating payeeEntity & check the flow