TP-68222 | t-store refactoring (#11744)
This commit is contained in:
@@ -29,15 +29,6 @@ class NaviBbpsDateUtils @Inject constructor() {
|
||||
} ?: return null
|
||||
}
|
||||
|
||||
fun getDateTimeObjectFromEpoch(
|
||||
dateTime: String?,
|
||||
timeZone: DateTimeZone = DateTimeZone.getDefault()
|
||||
): DateTime? {
|
||||
dateTime?.toLongOrNull()?.let {
|
||||
return DateTime(it).withZone(timeZone)
|
||||
} ?: return null
|
||||
}
|
||||
|
||||
fun getFormattedDate(utcDateString: String?, outputFormat: String): String {
|
||||
val dateTime =
|
||||
getDateTimeObjectFromDateTimeString(
|
||||
@@ -54,7 +45,10 @@ class NaviBbpsDateUtils @Inject constructor() {
|
||||
|
||||
fun getFormattedDateFromEpoch(epochTime: String?, outputFormat: String): String {
|
||||
val dateTime =
|
||||
getDateTimeObjectFromEpoch(dateTime = epochTime, timeZone = DateTimeZone.getDefault())
|
||||
DateUtils.getDateTimeObjectFromEpoch(
|
||||
dateTime = epochTime,
|
||||
timeZone = DateTimeZone.getDefault()
|
||||
)
|
||||
return dateTime?.let {
|
||||
DateUtils.getFormattedDateTimeAsStringFromDateTimeObject(
|
||||
dateTime = dateTime,
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
package com.navi.bbps.feature.paybill.util
|
||||
|
||||
import com.navi.base.utils.DateUtils
|
||||
import com.navi.bbps.common.utils.NaviBbpsDateUtils
|
||||
import com.navi.bbps.feature.billhistorydetail.model.view.BillTransactionItemEntity
|
||||
import com.navi.bbps.feature.category.model.view.BillCategoryEntity
|
||||
@@ -84,20 +85,13 @@ private fun getBBPSOrderDetailsMetadata(
|
||||
|
||||
private fun getDateTimeObjectFromPaymentPayload(paymentResponseMetadata: JSONObject): DateTime? {
|
||||
val naviBbpsDateUtils = NaviBbpsDateUtils()
|
||||
return if (!paymentResponseMetadata.optString("timestamp").isNullOrBlank()) {
|
||||
try {
|
||||
naviBbpsDateUtils.getDateTimeObjectFromDateTimeString(
|
||||
dateTime = paymentResponseMetadata.optString("timestamp"),
|
||||
timeZone = DateTimeZone.UTC
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
naviBbpsDateUtils.getDateTimeObjectFromEpoch(
|
||||
dateTime = System.currentTimeMillis().toString(),
|
||||
timeZone = DateTimeZone.UTC
|
||||
)
|
||||
}
|
||||
} else {
|
||||
naviBbpsDateUtils.getDateTimeObjectFromEpoch(
|
||||
return try {
|
||||
naviBbpsDateUtils.getDateTimeObjectFromDateTimeString(
|
||||
dateTime = paymentResponseMetadata.getString("timestamp"),
|
||||
timeZone = DateTimeZone.UTC
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
DateUtils.getDateTimeObjectFromEpoch(
|
||||
dateTime = System.currentTimeMillis().toString(),
|
||||
timeZone = DateTimeZone.UTC
|
||||
)
|
||||
|
||||
@@ -310,12 +310,17 @@ object NaviPayCommonUtils {
|
||||
}
|
||||
|
||||
fun getDateTimeObjectFromEpochString(epochMillis: Long): DateTime {
|
||||
val dateTime = DateTime(epochMillis, DateTimeZone.UTC)
|
||||
val dateTimeString = dateTime.toString()
|
||||
return getDateTimeObjectFromDateTimeString(
|
||||
dateTime = dateTimeString,
|
||||
timeZone = DateTimeZone.UTC
|
||||
) ?: DateTime()
|
||||
return try {
|
||||
val dateTime = DateTime(epochMillis, DateTimeZone.UTC)
|
||||
val dateTimeString = dateTime.toString()
|
||||
return getDateTimeObjectFromDateTimeString(
|
||||
dateTime = dateTimeString,
|
||||
timeZone = DateTimeZone.UTC
|
||||
) ?: DateTime()
|
||||
} catch (e: Exception) {
|
||||
FirebaseCrashlytics.getInstance().recordException(e)
|
||||
DateTime()
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun validateSimInfo(
|
||||
|
||||
@@ -16,7 +16,6 @@ import com.navi.pay.common.sync.repository.SyncRepository
|
||||
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
|
||||
import com.navi.pay.tstore.list.model.network.OrderItem
|
||||
import com.navi.pay.tstore.list.model.network.toOrderEntity
|
||||
import com.navi.pay.tstore.list.repository.OrderRepository
|
||||
import com.navi.pay.utils.NAVI_PAY_SYNC_TABLE_ORDER_HISTORY_KEY
|
||||
@@ -24,7 +23,6 @@ import com.navi.pay.utils.parallelMap
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
@Singleton
|
||||
class SyncOrderHistoryUseCase
|
||||
@@ -65,11 +63,7 @@ constructor(
|
||||
break
|
||||
}
|
||||
|
||||
val orderHistoryItemList =
|
||||
preprocessOrderHistoryList(
|
||||
orderHistoryItemList =
|
||||
orderHistoryAPIResponse.data?.orderItemList ?: emptyList()
|
||||
)
|
||||
val orderHistoryItemList = orderHistoryAPIResponse.data?.orderItemList.orEmpty()
|
||||
|
||||
val bankCodeList =
|
||||
orderHistoryItemList.flatMap { listOfNotNull(it.bankCode) }.distinct()
|
||||
@@ -112,37 +106,4 @@ constructor(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun preprocessOrderHistoryList(
|
||||
orderHistoryItemList: List<OrderItem>
|
||||
): List<OrderItem> {
|
||||
|
||||
val filteredOrderHistoryListPostSelfTransfer =
|
||||
filterOrderHistoryListForSelfTransferCase(orderHistoryItemList = orderHistoryItemList)
|
||||
|
||||
val processedOrderHistoryList =
|
||||
updateOrderHistoryDataForMandateCase(
|
||||
orderHistoryItemList = filteredOrderHistoryListPostSelfTransfer
|
||||
)
|
||||
|
||||
return processedOrderHistoryList
|
||||
}
|
||||
|
||||
private fun filterOrderHistoryListForSelfTransferCase(
|
||||
orderHistoryItemList: List<OrderItem>
|
||||
): List<OrderItem> {
|
||||
// for self transfer backend send both payer and payee transaction, so we are filtering out
|
||||
// payee transaction
|
||||
return orderHistoryItemList
|
||||
}
|
||||
|
||||
private suspend fun updateOrderHistoryDataForMandateCase(
|
||||
orderHistoryItemList: List<OrderItem>
|
||||
): List<OrderItem> =
|
||||
withContext(coroutineDispatcherProvider.io) {
|
||||
// In case of mandate transaction, payerName is UMN in callback hence we manually update
|
||||
// it
|
||||
|
||||
return@withContext orderHistoryItemList
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,14 +63,9 @@ fun OrderItem.getOrderCategoryTagsWithSeparator(
|
||||
OrderCategory.MERCHANT_DEBITED,
|
||||
OrderCategory.CUSTOMER_DEBITED_TO_MERCHANT,
|
||||
OrderCategory.CUSTOMER_CREDITED_FROM_MERCHANT
|
||||
)
|
||||
) {
|
||||
eligibleTags.add(TransactionCategoryTags.MERCHANT_PAYMENTS.value)
|
||||
}
|
||||
|
||||
if (
|
||||
(naviPayMetadata?.payeeInfo?.mcc?.isNotBlank() == true &&
|
||||
naviPayMetadata.payeeInfo.mcc != NAVI_PAY_DEFAULT_MCC) ||
|
||||
) ||
|
||||
(naviPayMetadata?.payeeInfo?.mcc?.isNotBlank() == true &&
|
||||
naviPayMetadata.payeeInfo.mcc != NAVI_PAY_DEFAULT_MCC) ||
|
||||
(naviPayMetadata?.payerInfo?.mcc?.isNotBlank() == true &&
|
||||
naviPayMetadata.payerInfo.mcc != NAVI_PAY_DEFAULT_MCC)
|
||||
) {
|
||||
@@ -136,11 +131,6 @@ fun OrderItem.getPaymentModeTags(
|
||||
OrderPaymentMode.MANDATE_PRESENTATION -> {
|
||||
eligibleTags.add(TransactionPaymentModeTags.MANDATE.value)
|
||||
}
|
||||
OrderPaymentMode.DEBIT_CARD,
|
||||
OrderPaymentMode.UPI,
|
||||
OrderPaymentMode.NETBANKING -> {
|
||||
eligibleTags.add(TransactionPaymentModeTags.BANK_ACCOUNT.value)
|
||||
}
|
||||
else -> {
|
||||
eligibleTags.add(TransactionPaymentModeTags.BANK_ACCOUNT.value)
|
||||
}
|
||||
|
||||
@@ -87,9 +87,11 @@ constructor(
|
||||
private val rewardsNudgeEntityFetchUseCase: RewardsNudgeEntityFetchUseCase
|
||||
) : NaviPayBaseVM(NaviPayVmData(screenName = NaviPayAnalytics.NAVI_PAY_ORDER_HISTORY)) {
|
||||
|
||||
private val SEARCH_QUERY_DEBOUNCE_TIME = 300.milliseconds
|
||||
private val MONTH_FILTER_MAX_DURATION = 18
|
||||
private val DEFAULT_PAGE_SIZE = 10
|
||||
companion object {
|
||||
private val SEARCH_QUERY_DEBOUNCE_TIME = 300.milliseconds
|
||||
private const val MONTH_FILTER_MAX_DURATION = 18
|
||||
private const val DEFAULT_PAGE_SIZE = 10
|
||||
}
|
||||
|
||||
val naviPayAnalytics = NaviPayAnalytics.INSTANCE.TStoreOrderList()
|
||||
|
||||
@@ -669,22 +671,6 @@ constructor(
|
||||
private fun updateEnabledStateForTags(
|
||||
orderHistoryScreenBottomSheetUIState: OrderHistoryScreenBottomSheetUIState
|
||||
) {
|
||||
|
||||
// if (
|
||||
// !FirebaseRemoteConfigHelper.getBoolean(
|
||||
// key = NAVI_PAY_TRANSACTION_HISTORY_DYNAMIC_FILTER_ENABLED,
|
||||
// defaultValue = true
|
||||
// )
|
||||
// ) {
|
||||
// naviPayAnalytics.onDynamicFilterDisabledViaFireBase()
|
||||
// return
|
||||
// }
|
||||
//
|
||||
// if (tagEnablingStateJob?.isActive == true) {
|
||||
// naviPayAnalytics.onTagEnablingStateJobRunning()
|
||||
// return
|
||||
// }
|
||||
|
||||
tagEnablingStateJob =
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
when (orderHistoryScreenBottomSheetUIState) {
|
||||
|
||||
Reference in New Issue
Block a user