NTP-35473 | OE - Metric info enforce for entire app (#14892)
This commit is contained in:
@@ -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,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user