From 432cfd86d49109838097c0ff8edd8fd09072aded Mon Sep 17 00:00:00 2001 From: Sidharth Bamba Date: Thu, 22 May 2025 12:54:09 +0530 Subject: [PATCH] NTP-66509 | Sidharth Bamba | tstore uptime metric changes (#16247) --- .../com/navi/common/checkmate/model/MetricInfo.kt | 11 +++++++++++ .../com/navi/common/checkmate/utils/CheckMateExt.kt | 1 + .../main/java/com/navi/common/model/ModuleNameV2.kt | 1 + .../com/navi/pay/analytics/NaviPayAnalytics.kt | 12 ++++++++++-- .../com/navi/pay/common/utils/NaviPayCommonUtils.kt | 7 +++++++ .../details/viewmodel/OrderDetailsViewModel.kt | 3 ++- .../tstore/list/usecase/SyncOrderHistoryUseCase.kt | 4 ++-- .../tstore/utils/error/OrderErrorMappingManager.kt | 4 ++-- 8 files changed, 36 insertions(+), 7 deletions(-) diff --git a/android/navi-common/src/main/java/com/navi/common/checkmate/model/MetricInfo.kt b/android/navi-common/src/main/java/com/navi/common/checkmate/model/MetricInfo.kt index e1ee0a59a1..0492fdce9f 100644 --- a/android/navi-common/src/main/java/com/navi/common/checkmate/model/MetricInfo.kt +++ b/android/navi-common/src/main/java/com/navi/common/checkmate/model/MetricInfo.kt @@ -10,6 +10,7 @@ package com.navi.common.checkmate.model import com.navi.common.model.ModuleNameV2 import com.navi.common.network.models.RepoResult import com.navi.common.network.models.isSuccess +import com.navi.common.network.models.isSuccessWithData sealed class MetricInfo( open val vertical: String, @@ -152,6 +153,16 @@ sealed class MetricInfo( }, override val vertical: String = ModuleNameV2.COMMON.name, ) : MetricInfo>(screen = screen, vertical = vertical, isNae = isNae) + + data class TStoreMetric( + override val screen: String, + override val isNae: (RepoResult) -> Boolean = { !it.isSuccessWithData() }, + ) : + MetricInfo>( + screen = screen, + vertical = ModuleNameV2.TSTORE.name, + isNae = isNae, + ) } enum class EventType { diff --git a/android/navi-common/src/main/java/com/navi/common/checkmate/utils/CheckMateExt.kt b/android/navi-common/src/main/java/com/navi/common/checkmate/utils/CheckMateExt.kt index a6ee4a5417..0a1afa23b0 100644 --- a/android/navi-common/src/main/java/com/navi/common/checkmate/utils/CheckMateExt.kt +++ b/android/navi-common/src/main/java/com/navi/common/checkmate/utils/CheckMateExt.kt @@ -50,6 +50,7 @@ fun getEventNameWithVerticalPrefix(eventName: String, vertical: String): String ModuleNameV2.NAVIPAY.name -> "NaviPay_$eventName" ModuleNameV2.BBPS.name -> "NaviBBPS_$eventName" ModuleNameV2.PG.name -> "NaviPMT_$eventName" + ModuleNameV2.TSTORE.name -> "NaviTStore_$eventName" ModuleNameV2.AMC.name -> "amc_$eventName" ModuleNameV2.COIN.name -> "navi_coin_$eventName" ModuleNameV2.Insurance.name -> "gi_$eventName" diff --git a/android/navi-common/src/main/java/com/navi/common/model/ModuleNameV2.kt b/android/navi-common/src/main/java/com/navi/common/model/ModuleNameV2.kt index 9e00ff4898..181cef5760 100644 --- a/android/navi-common/src/main/java/com/navi/common/model/ModuleNameV2.kt +++ b/android/navi-common/src/main/java/com/navi/common/model/ModuleNameV2.kt @@ -32,4 +32,5 @@ enum class ModuleNameV2 { MONEY_MANAGER, ADS, PAYMENTS_SHARED, + TSTORE, } diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt index 476d38faf7..ce0d82d203 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt @@ -12,6 +12,7 @@ import com.google.firebase.firestore.DocumentSnapshot import com.navi.analytics.utils.NaviTrackEvent import com.navi.base.model.ActionData import com.navi.base.utils.EMPTY +import com.navi.common.model.ModuleNameV2 import com.navi.common.network.isNetworkConnectivityInterceptorEnabled import com.navi.common.network.models.ErrorMessage import com.navi.common.network.models.GenericErrorResponse @@ -5815,7 +5816,11 @@ class NaviPayAnalytics private constructor() { fun onLanded(source: String, isFromHomeBottomBar: Boolean) { NaviTrackEvent.trackEventOnClickStream( "NaviTStore_OrderList_Landed", - mapOf("source" to source, "isFromHomeBottomBar" to isFromHomeBottomBar.toString()), + mapOf( + "source" to source, + "vertical" to ModuleNameV2.TSTORE.name, + "isFromHomeBottomBar" to isFromHomeBottomBar.toString(), + ), ) } @@ -5936,7 +5941,10 @@ class NaviPayAnalytics private constructor() { inner class OrderDetails { fun onLanded() { - NaviTrackEvent.trackEventOnClickStream("NaviTStore_OrderDetails_Landed") + NaviTrackEvent.trackEventOnClickStream( + "NaviTStore_OrderDetails_Landed", + mapOf("vertical" to ModuleNameV2.TSTORE.name), + ) } fun onHelpCtaClicked(orderId: String) { diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/common/utils/NaviPayCommonUtils.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/common/utils/NaviPayCommonUtils.kt index b6b8624f99..f3e4ef828a 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/common/utils/NaviPayCommonUtils.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/common/utils/NaviPayCommonUtils.kt @@ -701,6 +701,13 @@ fun getMetricInfo( return MetricInfo.UPIMetric(screenName, isNae = isNae) } +fun getTStoreMetricInfo( + screenName: String, + isNae: (RepoResult) -> Boolean = { !it.isSuccessWithData() }, +): MetricInfo> { + return MetricInfo.TStoreMetric(screenName, isNae = isNae) +} + fun generateSHA256Hash(input: String): String { val sha256Digest = MessageDigest.getInstance(SHA_256) val hashBytes = sha256Digest.digest(input.toByteArray()) diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/viewmodel/OrderDetailsViewModel.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/viewmodel/OrderDetailsViewModel.kt index cc06367914..aa67931aa6 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/viewmodel/OrderDetailsViewModel.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/details/viewmodel/OrderDetailsViewModel.kt @@ -63,6 +63,7 @@ import com.navi.pay.common.utils.NaviPayCommonUtils.getDateTimeObjectFromEpochSt import com.navi.pay.common.utils.NaviPayCommonUtils.getHelpCtaData import com.navi.pay.common.utils.getBankNameAccountNumberText import com.navi.pay.common.utils.getMetricInfo +import com.navi.pay.common.utils.getTStoreMetricInfo import com.navi.pay.common.utils.timeToExpireInDays import com.navi.pay.common.viewmodel.NaviPayBaseVM import com.navi.pay.destinations.LinkedAccountBalanceScreenDestination @@ -1477,7 +1478,7 @@ constructor( .startPolling { orderDetailsRepository.fetchOrderStatus( orderId = orderEntity.value?.orderReferenceId.orEmpty(), - metricInfo = getMetricInfo(screenName = screenName, isNae = { false }), + metricInfo = getTStoreMetricInfo(screenName = screenName, isNae = { false }), ) } .collect { diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/list/usecase/SyncOrderHistoryUseCase.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/list/usecase/SyncOrderHistoryUseCase.kt index 38961c5f2d..ac140d0520 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/list/usecase/SyncOrderHistoryUseCase.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/list/usecase/SyncOrderHistoryUseCase.kt @@ -14,7 +14,7 @@ import com.navi.common.constants.ARC_LOCAL_COUNTER_KEY import com.navi.common.network.models.isSuccessWithData import com.navi.pay.common.sync.model.view.SyncEntity import com.navi.pay.common.sync.repository.SyncRepository -import com.navi.pay.common.utils.getMetricInfo +import com.navi.pay.common.utils.getTStoreMetricInfo import com.navi.pay.onboarding.account.add.repository.BankRepository import com.navi.pay.tstore.details.ui.upi.NaviPayTransactionDetailsMetadata import com.navi.pay.tstore.list.model.network.OrderHistoryRequest @@ -63,7 +63,7 @@ constructor( val orderHistoryAPIResponse = orderRepository.getOrderHistoryFromNetwork( orderHistoryRequest = OrderHistoryRequest(updatedAt = updatedAtForApiRequest), - metricInfo = getMetricInfo(screenName = screenName, isNae = { false }), + metricInfo = getTStoreMetricInfo(screenName = screenName, isNae = { false }), ) if (!orderHistoryAPIResponse.isSuccessWithData()) { diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/utils/error/OrderErrorMappingManager.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/utils/error/OrderErrorMappingManager.kt index c0e5484fdb..c83099a05c 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/utils/error/OrderErrorMappingManager.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/tstore/utils/error/OrderErrorMappingManager.kt @@ -15,7 +15,7 @@ import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.NAVI_PAY_ import com.navi.common.network.models.isSuccessWithData import com.navi.pay.common.sync.model.view.SyncEntity import com.navi.pay.common.sync.repository.SyncRepository -import com.navi.pay.common.utils.getMetricInfo +import com.navi.pay.common.utils.getTStoreMetricInfo import com.navi.pay.tstore.list.repository.OrderRepository import com.navi.pay.tstore.utils.error.model.OrderErrorEntity import com.navi.pay.utils.NAVI_PAY_SYNC_TABLE_ORDER_ERROR_MAPPING_KEY @@ -47,7 +47,7 @@ constructor( val response = orderRepository.getErrorMapping( updatedAt = lastSyncedTimestamp.toString(), - metricInfo = getMetricInfo(screenName, isNae = { false }), + metricInfo = getTStoreMetricInfo(screenName, isNae = { false }), ) if (response.isSuccessWithData()) {