NTP-35473 | OE - Metric info enforce for entire app (#14892)

This commit is contained in:
shankar yadav
2025-02-10 20:26:25 +05:30
committed by GitHub
parent a19987cbe0
commit 771a4716f2
156 changed files with 1559 additions and 773 deletions

View File

@@ -7,11 +7,14 @@
package com.navi.ap.common.lambda.verticals.coins
import com.navi.analytics.utils.NaviTrackEvent
import com.navi.ap.common.lambda.logApiResponseEvents
import com.navi.ap.common.models.lambdamodels.response.ValidateCoinsUPIIdResponse
import com.navi.ap.data.repository.ApplicationPlatformRepositoryImp
import com.navi.ap.network.retrofit.ApRepoResult
import com.navi.ap.network.retrofit.service.APRetrofitService
import com.navi.common.checkmate.model.MetricInfo
import com.navi.common.network.models.isSuccessWithData
import com.navi.common.uitron.model.action.ApiType
import javax.inject.Inject
@@ -21,6 +24,14 @@ class CoinLambdaRepository @Inject constructor(private val retrofitService: APRe
suspend fun validateCoinsUPIId(upiId: String): ApRepoResult<ValidateCoinsUPIIdResponse> {
val response = retrofitService.validateCoinsUPIID(upiId = upiId)
logApiResponseEvents(methodName = ::validateCoinsUPIId.name, response = response)
return apiResponseCallback(response = response, apiTag = ApiType.LambdaApiAction.name)
return apiResponseCallback(
response = response,
metricInfo =
MetricInfo.CoinMetric(
screen = NaviTrackEvent.foregroundScreen.orEmpty(),
isNae = { !it.isSuccessWithData() },
),
apiTag = ApiType.LambdaApiAction.name,
)
}
}

View File

@@ -7,6 +7,7 @@
package com.navi.ap.common.lambda.verticals.generic
import com.navi.analytics.utils.NaviTrackEvent
import com.navi.ap.data.repository.ApplicationPlatformRepositoryImp
import com.navi.ap.network.retrofit.ApRepoResult
import com.navi.ap.network.retrofit.service.APRetrofitService
@@ -18,6 +19,8 @@ import com.navi.ap.utils.getValueAtJsonPath
import com.navi.ap.utils.injectValuesInAStringWithPlaceHolders
import com.navi.ap.utils.injector.PathInjector
import com.navi.ap.utils.logApEvent
import com.navi.common.checkmate.model.MetricInfo
import com.navi.common.network.models.isSuccessWithData
import com.navi.common.uitron.model.ApiRequestType
import com.navi.common.uitron.model.action.ApiType
import com.navi.common.uitron.model.action.LambdaApiAction
@@ -50,6 +53,12 @@ class GenericLambdaRepository @Inject constructor(private val retrofitService: A
val requestBody =
PathInjector<Any, Any?>().injectData(request.body ?: Any(), resolvedValues)
val metricInfo =
MetricInfo.CommonMetric<Any>(
screen = NaviTrackEvent.foregroundScreen.orEmpty(),
vertical = NaviTrackEvent.foregroundVertical.orEmpty(),
isNae = { !it.isSuccessWithData() },
)
val response =
when (request.method) {
ApiRequestType.GET.name -> {
@@ -82,6 +91,7 @@ class GenericLambdaRepository @Inject constructor(private val retrofitService: A
)
return apiResponseCallback(
response = response,
metricInfo = metricInfo,
apiTag =
lambdaApiAction.definition?.implementation?.apiTag ?: ApiType.LambdaApiAction.name,
)

View File

@@ -49,7 +49,7 @@ abstract class ApResponseCallback {
fun <T> apiResponseCallback(
response: Response<GenericResponse<T>>,
metricInfo: MetricInfo<RepoResult<T>>? = null,
metricInfo: MetricInfo<RepoResult<T>>,
apiTag: String = EMPTY,
): ApRepoResult<T> {
val handledResponse =
@@ -61,7 +61,7 @@ abstract class ApResponseCallback {
CheckMateManager.recordNetworkEvent(
response,
handledResponse.toRepoResult(),
metricInfo = metricInfo ?: MetricInfo.getVerticalMetric(response),
metricInfo = metricInfo,
)
return handledResponse
}