From bfb6162a9a682dbc1d639752c20112241ddc9e8e Mon Sep 17 00:00:00 2001 From: Prajjaval Verma Date: Wed, 4 Jun 2025 11:51:56 +0530 Subject: [PATCH] NTP-66822 | Adding downtime events for digitap vendor (#16421) --- .../com/navi/common/constants/ApiConstants.kt | 3 +- .../kyc/ui/GiAadhaarVerificationFragment.kt | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/android/navi-common/src/main/java/com/navi/common/constants/ApiConstants.kt b/android/navi-common/src/main/java/com/navi/common/constants/ApiConstants.kt index 505afffe0f..3ddad4571f 100644 --- a/android/navi-common/src/main/java/com/navi/common/constants/ApiConstants.kt +++ b/android/navi-common/src/main/java/com/navi/common/constants/ApiConstants.kt @@ -1,6 +1,6 @@ /* * - * * Copyright © 2022-2024 by Navi Technologies Limited + * * Copyright © 2022-2025 by Navi Technologies Limited * * All rights reserved. Strictly confidential * */ @@ -30,3 +30,4 @@ const val VENDOR_GI_PAYU = "gi_payu" const val VENDOR_GI_JUSPAY = "gi_juspay" const val VENDOR_GI_RAZORPAY = "gi_razorpay" const val VENDOR_MEDIBUDDY = "gi_medibuddy" +const val VENDOR_GI_DIGITAP = "gi_digitap" diff --git a/android/navi-insurance/src/main/java/com/navi/insurance/kyc/ui/GiAadhaarVerificationFragment.kt b/android/navi-insurance/src/main/java/com/navi/insurance/kyc/ui/GiAadhaarVerificationFragment.kt index b0a0555c63..1b3efb643a 100644 --- a/android/navi-insurance/src/main/java/com/navi/insurance/kyc/ui/GiAadhaarVerificationFragment.kt +++ b/android/navi-insurance/src/main/java/com/navi/insurance/kyc/ui/GiAadhaarVerificationFragment.kt @@ -25,6 +25,7 @@ import com.navi.base.utils.SUCCESS import com.navi.base.utils.isNotNull import com.navi.common.ResponseState import com.navi.common.constants.GI +import com.navi.common.constants.VENDOR_GI_DIGITAP import com.navi.common.network.models.ErrorMessage import com.navi.insurance.R import com.navi.insurance.analytics.InsuranceAnalyticsConstants @@ -52,6 +53,7 @@ import com.navi.insurance.util.Constants import com.navi.insurance.util.JOURNEY_KEY_EXTRA import com.navi.insurance.util.QUERY_PARAMS import com.navi.insurance.util.TRUE +import com.navi.insurance.util.logGiAppErrorEvent import com.navi.naviwidgets.extensions.addOnMultipleClicksHandler import com.navi.naviwidgets.extensions.getJsonObject import com.navi.naviwidgets.extensions.setTextFieldData @@ -428,6 +430,17 @@ class GiAadhaarVerificationFragment : GiBaseFragment(), OKYCListener { Pair("txnId", txnId), ) ) + if (containsKnownUIDAIError(error.errorMessage)) { + logGiAppErrorEvent( + screen = screenName, + errorCode = error.errorCode.toString(), + errorTitle = error.errorMessage.toString(), + errorDes = error.message, + isSourceExternal = true, + vendor = VENDOR_GI_DIGITAP, + exception = error.stackTraceToString(), + ) + } aadhaarVerificationData = AadhaarVerificationData( error.errorCode, @@ -465,6 +478,15 @@ class GiAadhaarVerificationFragment : GiBaseFragment(), OKYCListener { } } + private fun containsKnownUIDAIError(errorMessage: String): Boolean { + val cleaned = errorMessage.trim() + return KNOWN_UIDAI_ERROR_MESSAGES.any { known -> + known.equals(cleaned, ignoreCase = true) || + known.contains(cleaned, ignoreCase = true) || + cleaned.contains(known, ignoreCase = true) + } + } + companion object { const val DEFAULT_POLLING_DURATION = 3000L const val DEFAULT_TIMEOUT_DURATION = 10000L @@ -475,5 +497,13 @@ class GiAadhaarVerificationFragment : GiBaseFragment(), OKYCListener { private const val OKYC_FORM_ENABLED_KEY = "okycFormEnabled" private const val IS_NAVI_ONE_PROFILE_ENABLED = "isNaviOneProfileEnabled" private const val TRANSITION_KEY = "transition" + private val KNOWN_UIDAI_ERROR_MESSAGES = + listOf( + "Error from UIDAI - Error while processing the request. Please retry.", + "Authentication Failed", + "Error from UIDAI - required fields are missing", + "Something went wrong. Please Try after some time", + "Error from UIDAI - Unable to resolve host \"svc.digitap.ai\": No address associated with hostname", + ) } }