TP-59593 | Narayan | Payee Entity Cleanup (#10038)
This commit is contained in:
committed by
GitHub
parent
17cea0d3a3
commit
115ab64642
@@ -72,7 +72,6 @@ import com.navi.pay.management.common.sendmoney.model.network.TransactionRespons
|
||||
import com.navi.pay.management.common.sendmoney.model.view.BankAccountsState
|
||||
import com.navi.pay.management.common.sendmoney.model.view.CollectRequestAction
|
||||
import com.navi.pay.management.common.sendmoney.model.view.LinkedAccountEntityState
|
||||
import com.navi.pay.management.common.sendmoney.model.view.PayeeEntity
|
||||
import com.navi.pay.management.common.sendmoney.model.view.PayeeSeverity
|
||||
import com.navi.pay.management.common.sendmoney.model.view.SendMoneyBackPressAction
|
||||
import com.navi.pay.management.common.sendmoney.model.view.SendMoneyMainCtaState
|
||||
@@ -143,6 +142,7 @@ import com.navi.pay.utils.ZERO_STRING
|
||||
import com.navi.pay.utils.getDisplayableAmount
|
||||
import com.navi.pay.utils.getFormattedAmountWithDecimal
|
||||
import com.navi.pay.utils.getIfscForBankUptime
|
||||
import com.navi.pay.utils.getTrimmedValue
|
||||
import com.navi.pay.utils.isAccountIdOfTypeUpiLite
|
||||
import com.navi.pay.utils.isAmountValidForSendMoney
|
||||
import com.navi.pay.utils.toUpiMapperVpa
|
||||
@@ -1174,15 +1174,9 @@ constructor(
|
||||
rewardNudgeShown = if (rewardsNudgeDetailEntity.value != null) "Y" else "N"
|
||||
)
|
||||
|
||||
// TODO: Try directly updating payeeEntity & check the flow
|
||||
val payeeEntity =
|
||||
payeeEntity.value.copy(
|
||||
amount = String.format("%.2f", paymentAmount.value.toDouble()),
|
||||
note =
|
||||
note.value.trim().ifBlank {
|
||||
naviPayDefaultConfig.config.configMessage.sendMoneyDefaultRemarks
|
||||
}
|
||||
)
|
||||
_payeeEntity.update {
|
||||
it.copy(amount = getFormattedPaymentAmount(), note = getNoteValue())
|
||||
}
|
||||
|
||||
val txnTimeStamp =
|
||||
NaviPayCommonUtils.getDateTimeObjectFromDateTimeString(
|
||||
@@ -1198,8 +1192,8 @@ constructor(
|
||||
credDataProvider.upiLiteSendMoneyCred(
|
||||
linkedAccountEntity = selectedBankAccount,
|
||||
payerLiteAccountNumber = lrn,
|
||||
payeeEntity = payeeEntity,
|
||||
upiRequestId = upiRequestId,
|
||||
payeeEntity = payeeEntity.value,
|
||||
txnTimeStamp = txnTimeStamp.toString()
|
||||
)
|
||||
upiLiteAnalytics.onDevGenericEvent(
|
||||
@@ -1210,7 +1204,7 @@ constructor(
|
||||
npciCredData =
|
||||
credDataProvider.payCred(
|
||||
accountEntity = selectedBankAccount,
|
||||
payeeEntity = payeeEntity,
|
||||
payeeEntity = payeeEntity.value,
|
||||
upiRequestId = upiRequestId
|
||||
)
|
||||
}
|
||||
@@ -1229,7 +1223,6 @@ constructor(
|
||||
if (isPaymentFromLiteAccount)
|
||||
modifyCredBlockForLiteTxn(npciResult.data)
|
||||
else npciResult.data,
|
||||
payeeEntity = payeeEntity,
|
||||
selectedBankAccountEntity = selectedBankAccount,
|
||||
txnTimeStamp = txnTimeStamp.toString(),
|
||||
clService = npciClService,
|
||||
@@ -1246,7 +1239,6 @@ constructor(
|
||||
isExternalUpiRequestIdAvailable: Boolean,
|
||||
upiRequestId: String,
|
||||
credBlock: String,
|
||||
payeeEntity: PayeeEntity,
|
||||
selectedBankAccountEntity: LinkedAccountEntity,
|
||||
txnTimeStamp: String,
|
||||
clService: NpciClService,
|
||||
@@ -1274,7 +1266,6 @@ constructor(
|
||||
isExternalUpiRequestIdAvailable = isExternalUpiRequestIdAvailable,
|
||||
upiRequestId = upiRequestId,
|
||||
credBlock = credBlock,
|
||||
payeeEntity = payeeEntity,
|
||||
selectedBankAccount = selectedBankAccountEntity,
|
||||
txnTimeStamp = txnTimeStamp,
|
||||
clService = clService,
|
||||
@@ -1288,7 +1279,6 @@ constructor(
|
||||
isExternalUpiRequestIdAvailable = isExternalUpiRequestIdAvailable,
|
||||
upiRequestId = upiRequestId,
|
||||
credBlock = credBlock,
|
||||
payeeEntity = payeeEntity,
|
||||
selectedBankAccount = selectedBankAccountEntity,
|
||||
txnTimeStamp = txnTimeStamp,
|
||||
clService = clService,
|
||||
@@ -1411,7 +1401,7 @@ constructor(
|
||||
bankCode = validateVpaAPIResponse.data!!.bankCode
|
||||
)
|
||||
}
|
||||
val severity = _payeeEntity.value.severity
|
||||
val severity = payeeEntity.value.severity
|
||||
if (shouldWarnUserOrBlockTransaction(severity = severity)) {
|
||||
naviPayAnalytics.onPotentialFraudLanded(
|
||||
source = source,
|
||||
@@ -1516,7 +1506,6 @@ constructor(
|
||||
isExternalUpiRequestIdAvailable: Boolean,
|
||||
upiRequestId: String,
|
||||
credBlock: String,
|
||||
payeeEntity: PayeeEntity,
|
||||
selectedBankAccount: LinkedAccountEntity,
|
||||
txnTimeStamp: String,
|
||||
clService: NpciClService,
|
||||
@@ -1536,16 +1525,16 @@ constructor(
|
||||
SendMoneyRequest(
|
||||
gatewayPayeeInfo =
|
||||
GatewayPayeeInfo(
|
||||
vpa = payeeEntity.vpa,
|
||||
name = payeeEntity.name,
|
||||
bankIfsc = payeeEntity.bankIfsc,
|
||||
bankAccountUniqueId = payeeEntity.bankAccountUniqueId,
|
||||
bankAccountNumber = payeeEntity.maskedAccountNumber,
|
||||
bankName = payeeEntity.bankName,
|
||||
bankCode = payeeEntity.bankCode,
|
||||
mobileNumber = payeeEntity.phoneNumber,
|
||||
upiNumber = payeeEntity.upiNumber,
|
||||
mcc = payeeEntity.mcc,
|
||||
vpa = payeeEntity.value.vpa,
|
||||
name = payeeEntity.value.name,
|
||||
bankIfsc = payeeEntity.value.bankIfsc,
|
||||
bankAccountUniqueId = payeeEntity.value.bankAccountUniqueId,
|
||||
bankAccountNumber = payeeEntity.value.maskedAccountNumber,
|
||||
bankName = payeeEntity.value.bankName,
|
||||
bankCode = payeeEntity.value.bankCode,
|
||||
mobileNumber = payeeEntity.value.phoneNumber,
|
||||
upiNumber = payeeEntity.value.upiNumber,
|
||||
mcc = payeeEntity.value.mcc,
|
||||
),
|
||||
gatewayPayerInfo =
|
||||
GatewayPayerInfo(
|
||||
@@ -1559,20 +1548,20 @@ constructor(
|
||||
),
|
||||
gatewayTxnInfo =
|
||||
GatewayTxnInfo(
|
||||
amount = payeeEntity.amount,
|
||||
amount = payeeEntity.value.amount,
|
||||
upiRequestId = upiRequestId,
|
||||
currency = payeeEntity.currency,
|
||||
initiationMode = payeeEntity.mode,
|
||||
currency = payeeEntity.value.currency,
|
||||
initiationMode = payeeEntity.value.mode,
|
||||
purpose =
|
||||
if (isPaymentFromLiteAccount) UPILitePurposeCodes.SEND_MONEY.purposeCode
|
||||
else payeeEntity.purpose,
|
||||
remarks = payeeEntity.note,
|
||||
else payeeEntity.value.purpose,
|
||||
remarks = payeeEntity.value.note,
|
||||
timeStamp = txnTimeStamp,
|
||||
credBlock = credBlock,
|
||||
refCategory = payeeEntity.refCategory,
|
||||
refUrl = payeeEntity.refUrl,
|
||||
refCategory = payeeEntity.value.refCategory,
|
||||
refUrl = payeeEntity.value.refUrl,
|
||||
transactionType = transactionType.name,
|
||||
transactionReference = payeeEntity.transactionReference,
|
||||
transactionReference = payeeEntity.value.transactionReference,
|
||||
paymentMode =
|
||||
getTransactionInitiationTypeFromSendMoneyScreenSource(
|
||||
sendMoneyScreenSource = source
|
||||
@@ -1981,19 +1970,14 @@ constructor(
|
||||
|
||||
val upiRequestId = payeeEntity.value.transactionId ?: ""
|
||||
|
||||
val payeeEntity =
|
||||
payeeEntity.value.copy(
|
||||
amount = String.format("%.2f", paymentAmount.value.toDouble()),
|
||||
note =
|
||||
note.value.trim().ifBlank {
|
||||
naviPayDefaultConfig.config.configMessage.sendMoneyDefaultRemarks
|
||||
}
|
||||
)
|
||||
_payeeEntity.update {
|
||||
it.copy(amount = getFormattedPaymentAmount(), note = getNoteValue())
|
||||
}
|
||||
|
||||
val npciCredData =
|
||||
credDataProvider.collectCred(
|
||||
accountEntity = updatedBankAccount,
|
||||
payeeEntity = payeeEntity,
|
||||
payeeEntity = payeeEntity.value,
|
||||
upiRequestId = upiRequestId
|
||||
)
|
||||
|
||||
@@ -2010,7 +1994,6 @@ constructor(
|
||||
collectRequestAction = CollectRequestAction.APPROVE,
|
||||
upiRequestId = upiRequestId,
|
||||
credBlock = npciResult.data,
|
||||
payeeEntity = payeeEntity,
|
||||
selectedBankAccount = updatedBankAccount
|
||||
)
|
||||
is NpciResult.Error -> handleNpciError(npciError = npciResult)
|
||||
@@ -2024,20 +2007,12 @@ constructor(
|
||||
val selectedBankAccount = _selectedBankAccount.value ?: return
|
||||
val upiRequestId = payeeEntity.value.transactionId ?: ""
|
||||
|
||||
val payeeEntity =
|
||||
payeeEntity.value.copy(
|
||||
amount = String.format("%.2f", paymentAmount.value.toDouble()),
|
||||
note =
|
||||
note.value.trim().ifBlank {
|
||||
naviPayDefaultConfig.config.configMessage.sendMoneyDefaultRemarks
|
||||
}
|
||||
)
|
||||
_payeeEntity.update { it.copy(amount = getFormattedPaymentAmount(), note = getNoteValue()) }
|
||||
|
||||
processCollectRequest(
|
||||
collectRequestAction = CollectRequestAction.DECLINE,
|
||||
upiRequestId = upiRequestId,
|
||||
credBlock = null,
|
||||
payeeEntity = payeeEntity,
|
||||
selectedBankAccount = selectedBankAccount
|
||||
)
|
||||
}
|
||||
@@ -2046,7 +2021,6 @@ constructor(
|
||||
collectRequestAction: CollectRequestAction,
|
||||
upiRequestId: String,
|
||||
credBlock: String?,
|
||||
payeeEntity: PayeeEntity,
|
||||
selectedBankAccount: LinkedAccountEntity
|
||||
) {
|
||||
if (source !is SendMoneyScreenSource.CollectRequest) return
|
||||
@@ -2078,16 +2052,16 @@ constructor(
|
||||
CollectRequestActionRequest(
|
||||
gatewayPayeeInfo =
|
||||
GatewayPayeeInfo(
|
||||
vpa = payeeEntity.vpa,
|
||||
name = payeeEntity.name,
|
||||
bankIfsc = payeeEntity.bankIfsc,
|
||||
bankAccountUniqueId = payeeEntity.bankAccountUniqueId,
|
||||
bankAccountNumber = payeeEntity.maskedAccountNumber,
|
||||
bankName = payeeEntity.bankName,
|
||||
bankCode = payeeEntity.bankCode,
|
||||
vpa = payeeEntity.value.vpa,
|
||||
name = payeeEntity.value.name,
|
||||
bankIfsc = payeeEntity.value.bankIfsc,
|
||||
bankAccountUniqueId = payeeEntity.value.bankAccountUniqueId,
|
||||
bankAccountNumber = payeeEntity.value.maskedAccountNumber,
|
||||
bankName = payeeEntity.value.bankName,
|
||||
bankCode = payeeEntity.value.bankCode,
|
||||
mobileNumber = null,
|
||||
upiNumber = null,
|
||||
mcc = payeeEntity.mcc,
|
||||
mcc = payeeEntity.value.mcc,
|
||||
),
|
||||
gatewayPayerInfo =
|
||||
GatewayPayerInfo(
|
||||
@@ -2101,18 +2075,18 @@ constructor(
|
||||
),
|
||||
gatewayTxnInfo =
|
||||
GatewayTxnInfo(
|
||||
amount = payeeEntity.amount,
|
||||
amount = payeeEntity.value.amount,
|
||||
upiRequestId = upiRequestId,
|
||||
currency = payeeEntity.currency,
|
||||
initiationMode = payeeEntity.mode,
|
||||
purpose = payeeEntity.purpose,
|
||||
remarks = payeeEntity.note,
|
||||
currency = payeeEntity.value.currency,
|
||||
initiationMode = payeeEntity.value.mode,
|
||||
purpose = payeeEntity.value.purpose,
|
||||
remarks = payeeEntity.value.note,
|
||||
timeStamp = null,
|
||||
credBlock = credBlock,
|
||||
refCategory = payeeEntity.refCategory,
|
||||
refUrl = payeeEntity.refUrl,
|
||||
refCategory = payeeEntity.value.refCategory,
|
||||
refUrl = payeeEntity.value.refUrl,
|
||||
transactionType = transactionType.name,
|
||||
transactionReference = payeeEntity.transactionReference,
|
||||
transactionReference = payeeEntity.value.transactionReference,
|
||||
paymentMode =
|
||||
getTransactionInitiationTypeFromSendMoneyScreenSource(
|
||||
sendMoneyScreenSource = source
|
||||
@@ -2333,12 +2307,9 @@ constructor(
|
||||
txnStatus = sendMoneyResponse.status,
|
||||
txnType = transactionType.name,
|
||||
txnReqType = sendMoneyResponse.txnRequestType,
|
||||
amount = String.format("%.2f", (paymentAmount.value.toDoubleOrNull() ?: 0.0)),
|
||||
amount = getFormattedPaymentAmount(),
|
||||
currency = DEFAULT_UPI_CURRENCY,
|
||||
remarks =
|
||||
note.value.trim().ifBlank {
|
||||
naviPayDefaultConfig.config.configMessage.sendMoneyDefaultRemarks
|
||||
},
|
||||
remarks = getNoteValue(),
|
||||
txnTimestamp =
|
||||
sendMoneyResponse.transactionTimestamp
|
||||
?: DateTime.now(DateTimeZone.UTC), // DB always stores in UTC
|
||||
@@ -2480,4 +2451,12 @@ constructor(
|
||||
_rewardsNudgeDetailEntity.update { rewardsNudgeDetail }
|
||||
}
|
||||
}
|
||||
|
||||
private fun getNoteValue() =
|
||||
note.value.getTrimmedValue(
|
||||
defaultValue = naviPayDefaultConfig.config.configMessage.sendMoneyDefaultRemarks
|
||||
)
|
||||
|
||||
private fun getFormattedPaymentAmount() =
|
||||
String.format("%.2f", paymentAmount.value.toDoubleOrNull() ?: 0.0)
|
||||
}
|
||||
|
||||
@@ -230,6 +230,10 @@ fun String.getFormattedAmountWithDecimal(): String {
|
||||
return amount
|
||||
}
|
||||
|
||||
fun String.getTrimmedValue(defaultValue: String = EMPTY): String {
|
||||
return this.trim().ifBlank { defaultValue }
|
||||
}
|
||||
|
||||
fun String.isAccountIdOfTypeUpiLite(): Boolean {
|
||||
return this.contains(UNDERSCORE)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user