NTP-5952 | Clean up PE OE events (#13928)
Co-authored-by: siddiboina-susai_navi <siddiboina.susai@navi.com> Co-authored-by: Shivam Goyal <shivam.goyal@navi.com>
This commit is contained in:
@@ -1505,6 +1505,7 @@ class NaviAnalytics private constructor() {
|
||||
const val NAV_LOAN_CLICKED = "NaviApp_Nav_Loan_Clicked"
|
||||
const val NEW_CLOSED_LOAN_SCREEN = "NaviApp_Closed_Loan_Lands"
|
||||
const val NEW_HOME_ACTIVITY = "new_home_activity"
|
||||
const val LOANS_TAB = "loans_tab"
|
||||
const val PROFILE_SCREEN = "profile_screen"
|
||||
const val NEW_USER_EXPERIENCE_ACTIVITY = "new_user_experience_activity"
|
||||
const val NAVI_DEEPLINK_MANAGEMENT_ACTIVITY = "NaviDeeplinkManagementActivityLanded"
|
||||
|
||||
@@ -882,7 +882,7 @@ class HomePageActivity :
|
||||
// To be removed when the NUX is driven by backend CTA using post-render action
|
||||
private fun fetchNuxScreenDataForEligibleUsers() {
|
||||
if (redirectionUseCase.isUpiNuxRedirection(intent.extras).not()) {
|
||||
homeVM.fetchNuxScreenDataForEligibleUsers {
|
||||
homeVM.fetchNuxScreenDataForEligibleUsers(naeScreenName = screenName) {
|
||||
redirectionUseCase.navigateToUpiNuxScreen(HOME)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.navi.base.utils.orFalse
|
||||
import com.navi.common.ui.errorview.FullScreenErrorComposeView
|
||||
import com.navi.common.utils.Constants.CTAData
|
||||
import com.navi.common.utils.Constants.ERROR_CODE
|
||||
import com.naviapp.analytics.utils.NaviAnalytics
|
||||
import com.naviapp.common.web.NaviWebViewCallBack
|
||||
import com.naviapp.common.web.NaviWebViewCallBack.Companion.JAVA_SCRIPT_NAME_DEFAULT
|
||||
import com.naviapp.home.compose.activity.HomePageActivity
|
||||
@@ -178,13 +179,15 @@ private fun LoansTabWebView(
|
||||
) {
|
||||
val lifecycleOwner = LocalLifecycleOwner.current
|
||||
val showLoaderState = remember { mutableStateOf(true) }
|
||||
LaunchedEffect(Unit) { loansTabVm.fetchAuthTokenData() }
|
||||
LaunchedEffect(Unit) { loansTabVm.fetchAuthTokenData(naeScreenName = NaviAnalytics.LOANS_TAB) }
|
||||
when (val webViewUrl = loansTabVm.webViewUrl.collectAsState().value) {
|
||||
is AuthTokenState.Nothing -> {}
|
||||
is AuthTokenState.Error -> {
|
||||
FullScreenErrorComposeView(
|
||||
error = webViewUrl.error,
|
||||
onRetryClick = { loansTabVm.fetchAuthTokenData() }
|
||||
onRetryClick = {
|
||||
loansTabVm.fetchAuthTokenData(naeScreenName = NaviAnalytics.LOANS_TAB)
|
||||
}
|
||||
)
|
||||
}
|
||||
is AuthTokenState.Success -> {
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.navi.base.utils.BaseUtils
|
||||
import com.navi.base.utils.generateRandomString
|
||||
import com.navi.base.utils.generateSHA256Hash
|
||||
import com.navi.base.utils.isNotNull
|
||||
import com.navi.common.checkmate.model.MetricInfo
|
||||
import com.navi.common.model.ModuleNameV2
|
||||
import com.navi.common.network.models.GenericErrorResponse
|
||||
import com.navi.common.uitron.model.action.CtaAction
|
||||
@@ -105,14 +106,19 @@ constructor(
|
||||
}
|
||||
}
|
||||
|
||||
fun fetchAuthTokenData() {
|
||||
fun fetchAuthTokenData(naeScreenName: String) {
|
||||
viewModelScope.safeLaunch(Dispatchers.IO) {
|
||||
val codeVerifier = generateRandomString(32)
|
||||
val codeChallenger = generateSHA256Hash(codeVerifier)
|
||||
val response =
|
||||
webRedirectionRepository.fetchTemporarySessionToken(
|
||||
codeChallenger = codeChallenger,
|
||||
appSessionToken = BaseUtils.getSessionToken().toString()
|
||||
appSessionToken = BaseUtils.getSessionToken().toString(),
|
||||
metricInfo =
|
||||
MetricInfo.LEMetric(
|
||||
screen = naeScreenName,
|
||||
isNae = { !it.isValidResponse() }
|
||||
)
|
||||
)
|
||||
if (response.isValidResponse()) {
|
||||
_webViewUrl.value =
|
||||
|
||||
@@ -326,9 +326,13 @@ constructor(
|
||||
}
|
||||
}
|
||||
|
||||
fun fetchNuxScreenDataForEligibleUsers(navigateToNuxScreen: () -> Unit) {
|
||||
fun fetchNuxScreenDataForEligibleUsers(naeScreenName: String, navigateToNuxScreen: () -> Unit) {
|
||||
viewModelScope.safeLaunch((Dispatchers.IO)) {
|
||||
nuxHandler.fetchNuxScreenDataForEligibleUsers(UPI_NUX_SCREEN, navigateToNuxScreen)
|
||||
nuxHandler.fetchNuxScreenDataForEligibleUsers(
|
||||
UPI_NUX_SCREEN,
|
||||
navigateToNuxScreen,
|
||||
naeScreenName
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -62,10 +62,12 @@ constructor(
|
||||
|
||||
suspend fun fetchNuxScreenDataForEligibleUsers(
|
||||
screenId: String,
|
||||
navigateToNuxScreen: () -> Unit
|
||||
navigateToNuxScreen: () -> Unit,
|
||||
naeScreenName: String
|
||||
) {
|
||||
if (isUserEligibleForNux(screenId).not()) return
|
||||
val naviCacheAltSourceEntity = getNaviCacheAltSourceEntity(screenId)
|
||||
val naviCacheAltSourceEntity =
|
||||
getNaviCacheAltSourceEntity(screenId, naeScreenName = naeScreenName)
|
||||
if (naviCacheAltSourceEntity.value.isNotNullAndNotEmpty()) {
|
||||
canRedirectUserToNux = true
|
||||
navigateToNuxScreen()
|
||||
@@ -82,7 +84,8 @@ constructor(
|
||||
suspend fun getNuxScreenDefinition(
|
||||
queryMap: MutableMap<String, String?>,
|
||||
onSuccess: (data: AlchemistScreenDefinition) -> Unit,
|
||||
onFailure: () -> Unit
|
||||
onFailure: () -> Unit,
|
||||
naeScreenName: String
|
||||
) {
|
||||
this.queryMap = queryMap
|
||||
val screenId = queryMap[SCREEN_ID].orEmpty()
|
||||
@@ -90,7 +93,7 @@ constructor(
|
||||
naviCacheRepository.getDataOrFetchFromAltSource(
|
||||
key = screenId,
|
||||
version = BuildConfig.VERSION_CODE.toLong(),
|
||||
getDataFromAltSource = { getNaviCacheAltSourceEntity(screenId) }
|
||||
getDataFromAltSource = { getNaviCacheAltSourceEntity(screenId, naeScreenName) }
|
||||
)
|
||||
dataDeserializers
|
||||
.fromJson(cachedResponse?.value, AlchemistScreenDefinition::class.java)
|
||||
@@ -105,13 +108,17 @@ constructor(
|
||||
naviCacheRepository.clear(screenId)
|
||||
}
|
||||
|
||||
private suspend fun getNaviCacheAltSourceEntity(screenId: String): NaviCacheAltSourceEntity {
|
||||
private suspend fun getNaviCacheAltSourceEntity(
|
||||
screenId: String,
|
||||
naeScreenName: String
|
||||
): NaviCacheAltSourceEntity {
|
||||
val response =
|
||||
nuxRepository.fetchNuxScreenResponse(
|
||||
AlchemistScreenRequest(
|
||||
screenName = screenId,
|
||||
inputMap = mapOf(SOURCE to queryMap[SOURCE])
|
||||
)
|
||||
),
|
||||
naeScreenName = naeScreenName
|
||||
)
|
||||
if (response.isValidResponse()) {
|
||||
systemBackAction = response.data?.screenStructure?.systemBackCta
|
||||
|
||||
@@ -9,6 +9,7 @@ package com.naviapp.nux.repository
|
||||
|
||||
import com.navi.common.alchemist.model.AlchemistScreenDefinition
|
||||
import com.navi.common.alchemist.model.AlchemistScreenRequest
|
||||
import com.navi.common.checkmate.model.MetricInfo
|
||||
import com.navi.common.model.ModuleNameV2
|
||||
import com.navi.common.network.models.RepoResult
|
||||
import com.navi.common.utils.Constants.GZIP
|
||||
@@ -23,7 +24,8 @@ constructor(@SuperAppRetroFit private val superAppRetrofitService: RetrofitServi
|
||||
ResponseCallback() {
|
||||
|
||||
suspend fun fetchNuxScreenResponse(
|
||||
screenRequest: AlchemistScreenRequest
|
||||
screenRequest: AlchemistScreenRequest,
|
||||
naeScreenName: String
|
||||
): RepoResult<AlchemistScreenDefinition> =
|
||||
apiResponseCallback(
|
||||
superAppRetrofitService.fetchForgeAlchemistScreen(
|
||||
@@ -31,6 +33,7 @@ constructor(@SuperAppRetroFit private val superAppRetrofitService: RetrofitServi
|
||||
target = ModuleNameV2.FORGE.name,
|
||||
verticalType = ModuleNameV2.FORGE.name,
|
||||
request = screenRequest,
|
||||
)
|
||||
),
|
||||
metricInfo = MetricInfo.AppMetric(screen = naeScreenName, isNae = { false })
|
||||
)
|
||||
}
|
||||
|
||||
@@ -27,7 +27,8 @@ fun NuxGenericScreen(
|
||||
state: MainScreenUiState,
|
||||
effectFlow: Flow<MainScreenUiEffect>?,
|
||||
getViewModel: () -> NuxViewModel,
|
||||
onNavigationRequested: (MainScreenUiEffect.Navigation) -> Unit
|
||||
onNavigationRequested: (MainScreenUiEffect.Navigation) -> Unit,
|
||||
naeScreenName: String,
|
||||
) {
|
||||
LaunchedEffect(Unit) {
|
||||
effectFlow
|
||||
@@ -40,7 +41,9 @@ fun NuxGenericScreen(
|
||||
}
|
||||
?.collect()
|
||||
}
|
||||
LaunchedEffect(Unit) { getViewModel.invoke().getScreenDefinition() }
|
||||
LaunchedEffect(Unit) {
|
||||
getViewModel.invoke().getScreenDefinition(naeScreenName = naeScreenName)
|
||||
}
|
||||
|
||||
BackHandler { getViewModel().setEffect { MainScreenUiEffect.Navigation.Back } }
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ fun NuxGenericScreenDestination(bundle: Bundle?, viewModel: NuxViewModel = hiltV
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
naeScreenName = activity.screenName,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -29,12 +29,13 @@ class NuxViewModel @Inject constructor(val nuxHandler: NewUserExperienceHandler)
|
||||
|
||||
private var queryMap: MutableMap<String, String?> = mutableMapOf()
|
||||
|
||||
fun getScreenDefinition() {
|
||||
fun getScreenDefinition(naeScreenName: String) {
|
||||
viewModelScope.safeLaunch(Dispatchers.IO) {
|
||||
nuxHandler.getNuxScreenDefinition(
|
||||
queryMap = queryMap,
|
||||
onSuccess = { sendEvent(NuxGenericScreenUiEvent.RenderUI(it)) },
|
||||
onFailure = { setEffect { MainScreenUiEffect.Navigation.Back } }
|
||||
onFailure = { setEffect { MainScreenUiEffect.Navigation.Back } },
|
||||
naeScreenName = naeScreenName,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,12 +7,14 @@
|
||||
|
||||
package com.naviapp.payment.repositories
|
||||
|
||||
import com.navi.common.checkmate.model.MetricInfo
|
||||
import com.navi.common.model.AsyncRequestData
|
||||
import com.navi.common.model.InitiateRescheduleLoanAgreementGenerationRequest
|
||||
import com.navi.common.model.InitiateRescheduleLoanAgreementGenerationResponse
|
||||
import com.navi.common.model.PaymentOrderDetail
|
||||
import com.navi.common.model.UploadDataAsyncResponse
|
||||
import com.navi.common.network.models.RepoResult
|
||||
import com.navi.common.network.models.isSuccessWithData
|
||||
import com.navi.naviwidgets.models.response.BottomSheetInfoV2
|
||||
import com.navi.payment.paymenthandler.model.PaymentStatusData
|
||||
import com.navi.payment.paymenthandler.model.SyncPaymentResponse
|
||||
@@ -163,8 +165,12 @@ class PaymentRepository @Inject constructor() : ResponseCallback() {
|
||||
suspend fun closeLoan(loanAccountNumber: String?, request: ForecloseLoanRequest?) =
|
||||
apiResponseCallback(retrofitService().forecloseLoan(loanAccountNumber, request))
|
||||
|
||||
suspend fun fetchPaymentBehaviourWidget(type: String) =
|
||||
apiResponseCallback(retrofitService().fetchPaymentBehaviourWidget(type))
|
||||
suspend fun fetchPaymentBehaviourWidget(type: String, naeScreenName: String) =
|
||||
apiResponseCallback(
|
||||
retrofitService().fetchPaymentBehaviourWidget(type),
|
||||
metricInfo =
|
||||
MetricInfo.LEMetric(screen = naeScreenName, isNae = { !it.isSuccessWithData() })
|
||||
)
|
||||
|
||||
suspend fun fetchPaymentFailureBottomSheetData(
|
||||
data: InitiatePaymentRequest
|
||||
|
||||
@@ -139,7 +139,7 @@ class PaymentBehaviourFragment :
|
||||
private fun init() {
|
||||
isPositiveReinforcement = arguments?.getString(TYPE) == POSITIVE
|
||||
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
|
||||
launch { paymentBehaviourVM.fetchData(arguments) }
|
||||
launch { paymentBehaviourVM.fetchData(arguments, screenName) }
|
||||
}
|
||||
viewLifecycleOwner.lifecycleScope.launchWhenStarted {
|
||||
launch {
|
||||
|
||||
@@ -33,13 +33,17 @@ class PaymentBehaviourVM @Inject constructor(private val paymentRepository: Paym
|
||||
private var _paymentInfoResponse = MutableStateFlow<GenericWidgetState>(GenericWidgetState.Init)
|
||||
var paymentInfoResponse = _paymentInfoResponse.asStateFlow()
|
||||
|
||||
fun fetchData(arguments: Bundle?) {
|
||||
fun fetchData(arguments: Bundle?, naeScreenName: String) {
|
||||
val behaviourType = arguments?.getString(Constants.TYPE)
|
||||
when (val type = behaviourType ?: Constants.NEGATIVE) {
|
||||
Constants.NEGATIVE -> {
|
||||
coroutineScope.launch {
|
||||
_negativeReinforcementResponse.emit(GenericWidgetState.Loading)
|
||||
val response = paymentRepository.fetchPaymentBehaviourWidget(type)
|
||||
val response =
|
||||
paymentRepository.fetchPaymentBehaviourWidget(
|
||||
type,
|
||||
naeScreenName = naeScreenName
|
||||
)
|
||||
if (
|
||||
response.error == null &&
|
||||
response.errors.isNullOrEmpty() &&
|
||||
@@ -57,7 +61,11 @@ class PaymentBehaviourVM @Inject constructor(private val paymentRepository: Paym
|
||||
else -> {
|
||||
coroutineScope.launch {
|
||||
_positiveReinforcementResponse.emit(GenericWidgetState.Loading)
|
||||
val response = paymentRepository.fetchPaymentBehaviourWidget(type)
|
||||
val response =
|
||||
paymentRepository.fetchPaymentBehaviourWidget(
|
||||
type,
|
||||
naeScreenName = naeScreenName
|
||||
)
|
||||
if (
|
||||
response.error == null &&
|
||||
response.errors.isNullOrEmpty() &&
|
||||
|
||||
@@ -472,7 +472,7 @@ class RegistrationActivity :
|
||||
}
|
||||
|
||||
private fun makApiCalls() {
|
||||
homeVM.fetchNuxScreenDataForEligibleUsers {}
|
||||
homeVM.fetchNuxScreenDataForEligibleUsers(naeScreenName = screenName) {}
|
||||
naviFirebaseAuthHelper.get().initFirebaseAuth()
|
||||
}
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@ class WebRedirectionActivity : BaseActivity() {
|
||||
)
|
||||
}
|
||||
initialiseDataIngestion()
|
||||
webRedirectionVM.fetchTemporarySessionToken()
|
||||
webRedirectionVM.fetchTemporarySessionToken(naeScreenName = screenName)
|
||||
observeWebRedirectionNavigation()
|
||||
observeSmsUploadDataResponse()
|
||||
}
|
||||
@@ -270,7 +270,9 @@ class WebRedirectionActivity : BaseActivity() {
|
||||
trackEvent(eventName = REDIRECTION_TO_WEB_AUTH_API_FAILED)
|
||||
FullScreenErrorComposeView(
|
||||
error = data.error,
|
||||
onRetryClick = { webRedirectionVM.fetchTemporarySessionToken() }
|
||||
onRetryClick = {
|
||||
webRedirectionVM.fetchTemporarySessionToken(naeScreenName = screenName)
|
||||
}
|
||||
)
|
||||
}
|
||||
else -> {
|
||||
@@ -300,7 +302,9 @@ class WebRedirectionActivity : BaseActivity() {
|
||||
trackEvent(eventName = REDIRECTION_TO_WEB_AUTH_API_FAILED)
|
||||
FullScreenErrorComposeView(
|
||||
error = data.error,
|
||||
onRetryClick = { webRedirectionVM.fetchTemporarySessionToken() }
|
||||
onRetryClick = {
|
||||
webRedirectionVM.fetchTemporarySessionToken(naeScreenName = screenName)
|
||||
}
|
||||
)
|
||||
}
|
||||
is UiState.Success -> {
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.navi.base.utils.generateRandomString
|
||||
import com.navi.base.utils.generateSHA256Hash
|
||||
import com.navi.base.utils.isNotNullAndNotEmpty
|
||||
import com.navi.base.utils.orFalse
|
||||
import com.navi.common.checkmate.model.MetricInfo
|
||||
import com.navi.common.constants.APP_VERSION_CODE
|
||||
import com.navi.common.constants.OS_VERSION
|
||||
import com.navi.common.constants.OS_VERSION_NAME
|
||||
@@ -86,14 +87,19 @@ constructor(
|
||||
|
||||
private var businessUnit: String? = null
|
||||
|
||||
fun fetchTemporarySessionToken() {
|
||||
fun fetchTemporarySessionToken(naeScreenName: String) {
|
||||
viewModelScope.safeLaunch(Dispatchers.IO) {
|
||||
val codeVerifier = generateRandomString(RANDOM_STRING_LENGTH)
|
||||
val codeChallenger = generateSHA256Hash(codeVerifier)
|
||||
val response =
|
||||
repository.fetchTemporarySessionToken(
|
||||
codeChallenger = codeChallenger,
|
||||
appSessionToken = BaseUtils.getSessionToken().toString()
|
||||
appSessionToken = BaseUtils.getSessionToken().toString(),
|
||||
metricInfo =
|
||||
MetricInfo.LEMetric(
|
||||
screen = naeScreenName,
|
||||
isNae = { !it.isValidResponse() }
|
||||
)
|
||||
)
|
||||
if (response.isValidResponse()) {
|
||||
generateUrlForWebRedirect(codeVerifier, response.data?.code.toString()).let {
|
||||
|
||||
@@ -108,7 +108,7 @@ class CRMWebViewActivity : BaseActivity() {
|
||||
viewModel.showError.value = true
|
||||
} else {
|
||||
viewModel.showLoader.value = false
|
||||
viewModel.getCrmWebViewUrl(pathUrl = pathUrl.toString())
|
||||
viewModel.getCrmWebViewUrl(pathUrl = pathUrl.toString(), naeScreenName = screenName)
|
||||
}
|
||||
|
||||
initObservers()
|
||||
|
||||
@@ -51,6 +51,7 @@ import com.navi.chat.utils.WEB
|
||||
import com.navi.common.CommonLibManager
|
||||
import com.navi.common.awsupload.FileDownloadManager
|
||||
import com.navi.common.awsupload.model.DownloadTask
|
||||
import com.navi.common.checkmate.model.MetricInfo
|
||||
import com.navi.common.constants.APP_VERSION_CODE
|
||||
import com.navi.common.constants.OS_VERSION_NAME
|
||||
import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper
|
||||
@@ -88,14 +89,19 @@ constructor(
|
||||
val showError: MutableLiveData<Boolean>
|
||||
get() = _showError
|
||||
|
||||
fun getCrmWebViewUrl(pathUrl: String) {
|
||||
fun getCrmWebViewUrl(pathUrl: String, naeScreenName: String) {
|
||||
viewModelScope.safeLaunch(Dispatchers.IO) {
|
||||
val codeVerifier = generateRandomString(32)
|
||||
val codeChallenger = generateSHA256Hash(codeVerifier)
|
||||
val response =
|
||||
webRedirectionRepository.fetchTemporarySessionToken(
|
||||
codeChallenger = codeChallenger,
|
||||
appSessionToken = BaseUtils.getSessionToken().toString()
|
||||
appSessionToken = BaseUtils.getSessionToken().toString(),
|
||||
metricInfo =
|
||||
MetricInfo.ChatMetric(
|
||||
screen = naeScreenName,
|
||||
isNae = { !it.isValidResponse() }
|
||||
)
|
||||
)
|
||||
|
||||
val crmWebViewUrl =
|
||||
|
||||
@@ -125,6 +125,13 @@ sealed class MetricInfo<T>(
|
||||
isNae = isNae
|
||||
)
|
||||
|
||||
data class LEMetric<T>(
|
||||
override val screen: String,
|
||||
override val isNae: (RepoResult<T>) -> Boolean = {
|
||||
it.error != null || !it.errors.isNullOrEmpty()
|
||||
},
|
||||
) : MetricInfo<RepoResult<T>>(screen = screen, vertical = ModuleNameV2.LE.name, isNae = isNae)
|
||||
|
||||
data class CommonMetric<T>(
|
||||
override val screen: String,
|
||||
override val isNae: (RepoResult<T>) -> Boolean = {
|
||||
@@ -210,6 +217,22 @@ sealed class MetricInfo<T>(
|
||||
defaultNaeDefinition = { !it.isSuccess() }
|
||||
)
|
||||
}
|
||||
ModuleNameV2.LE.name,
|
||||
ModuleNameV2.PL.name,
|
||||
ModuleNameV2.HL.name -> {
|
||||
getVerticalNae(
|
||||
requestMethod = apiRequestMethod,
|
||||
isNaeDefinition = { !it.isSuccessWithData() },
|
||||
defaultNaeDefinition = { !it.isSuccess() }
|
||||
)
|
||||
}
|
||||
ModuleNameV2.CHAT.name -> {
|
||||
getVerticalNae(
|
||||
requestMethod = apiRequestMethod,
|
||||
isNaeDefinition = { !it.isSuccessWithData() },
|
||||
defaultNaeDefinition = { !it.isSuccess() }
|
||||
)
|
||||
}
|
||||
else -> {
|
||||
getVerticalNae(
|
||||
requestMethod = apiRequestMethod,
|
||||
@@ -229,6 +252,10 @@ sealed class MetricInfo<T>(
|
||||
ModuleNameV2.REWARDS.name -> RewardMetric(screenName, isNae)
|
||||
ModuleNameV2.App.name -> AppMetric(screenName, isNae)
|
||||
ModuleNameV2.GOLD.name -> GoldMetric(screenName, isNae)
|
||||
ModuleNameV2.LE.name,
|
||||
ModuleNameV2.PL.name,
|
||||
ModuleNameV2.HL.name -> LEMetric(screenName, isNae)
|
||||
ModuleNameV2.CHAT.name -> ChatMetric(screenName, isNae)
|
||||
else -> CommonMetric(screenName, isNae)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ package com.navi.common.model
|
||||
enum class ModuleNameV2 {
|
||||
APP_SHELL,
|
||||
CYCS,
|
||||
LE,
|
||||
PL, // For Personal Loan Activities
|
||||
HL, // For Home Loan Activities
|
||||
AMC, // For AMC Activities
|
||||
|
||||
@@ -7,12 +7,16 @@
|
||||
|
||||
package com.navi.common.repo
|
||||
|
||||
import com.navi.common.checkmate.model.MetricInfo
|
||||
import com.navi.common.network.retrofit.ResponseCallback
|
||||
import com.navi.common.utils.retrofitService
|
||||
import javax.inject.Inject
|
||||
|
||||
class FirebaseAuthRepository @Inject constructor() : ResponseCallback() {
|
||||
|
||||
suspend fun fetchFirebaseAuthToken() =
|
||||
apiResponseCallback(retrofitService().generateFirebaseAuthToken())
|
||||
suspend fun fetchFirebaseAuthToken(naeScreenName: String) =
|
||||
apiResponseCallback(
|
||||
retrofitService().generateFirebaseAuthToken(),
|
||||
metricInfo = MetricInfo.CommonMetric(screen = naeScreenName, isNae = { false })
|
||||
)
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ class FirebaseAuthHelper @Inject constructor(private val repository: FirebaseAut
|
||||
|
||||
private fun fetchFirebaseAuthToken(onAuth: (authStatus: FirebaseAuthStatus) -> Unit) {
|
||||
coroutineScope.launch {
|
||||
val tokenData = repository.fetchFirebaseAuthToken()
|
||||
val tokenData = repository.fetchFirebaseAuthToken(naeScreenName = "FirebaseAuthHelper")
|
||||
if (tokenData.error == null && tokenData.errors.isNullOrEmpty()) {
|
||||
tokenData.data?.authToken?.let { refreshFirebaseToken(it, onAuth) }
|
||||
} else {
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
package com.navi.common.webredirection.data
|
||||
|
||||
import com.navi.common.checkmate.model.MetricInfo
|
||||
import com.navi.common.network.models.RedirectionAuthTokenRequest
|
||||
import com.navi.common.network.models.RedirectionAuthTokenResponse
|
||||
import com.navi.common.network.models.RepoResult
|
||||
@@ -21,7 +22,8 @@ class WebRedirectionRepository @Inject constructor(private val retrofitService:
|
||||
suspend fun fetchTemporarySessionToken(
|
||||
codeChallenger: String,
|
||||
appSessionToken: String,
|
||||
codeChallengeMethod: String = Constants.SHA_256
|
||||
codeChallengeMethod: String = Constants.SHA_256,
|
||||
metricInfo: MetricInfo<RepoResult<RedirectionAuthTokenResponse>>
|
||||
): RepoResult<RedirectionAuthTokenResponse> {
|
||||
return apiResponseCallback(
|
||||
retrofitService.fetchTemporarySessionToken(
|
||||
@@ -30,7 +32,8 @@ class WebRedirectionRepository @Inject constructor(private val retrofitService:
|
||||
sessionToken = appSessionToken,
|
||||
codeChallengeMethod = codeChallengeMethod
|
||||
)
|
||||
)
|
||||
),
|
||||
metricInfo = metricInfo
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user