TP-53705 | Narayan | Cred Items Refactor (#9278)
This commit is contained in:
committed by
GitHub
parent
db08f3b2ad
commit
7ae96eb642
@@ -1,11 +1,16 @@
|
||||
package com.navi.pay.npcicl
|
||||
|
||||
import com.navi.pay.onboarding.account.detail.model.view.LinkedAccountEntity
|
||||
import com.navi.pay.utils.PIPE
|
||||
import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_AADHAAR
|
||||
import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_ATMPIN
|
||||
import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_DEBIT_NUM
|
||||
import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_IDENTITY
|
||||
import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_MPIN
|
||||
import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_NMPIN
|
||||
import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_OTP
|
||||
import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_PIN
|
||||
import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_SIGNATURE
|
||||
import org.npci.upi.security.pinactivitycomponent.CLConstants.CREDTYPE_SMS
|
||||
|
||||
class CredItemsProvider {
|
||||
@@ -21,16 +26,32 @@ class CredItemsProvider {
|
||||
const val CRED_TYPE_UPI_LITE_SEND_MONEY = "upiLiteSendMoney"
|
||||
|
||||
const val DEFAULT_REG_FORMAT = "NO_FORMAT"
|
||||
|
||||
private const val UPI_LITE_D_LENGTH = "2048"
|
||||
private const val ALPH = "ALPH"
|
||||
private const val DEVICE = "DEVICE"
|
||||
private const val ARQC = "ARQC"
|
||||
|
||||
private const val FORMAT1 = "FORMAT1"
|
||||
private const val FORMAT2 = "FORMAT2"
|
||||
private const val FORMAT3 = "FORMAT3"
|
||||
private const val FORMAT3_OR_FORMAT2 = "FORMAT3|FORMAT2"
|
||||
private const val FORMAT3_OR_FORMAT1 = "FORMAT3|FORMAT1"
|
||||
}
|
||||
|
||||
fun getCredItems(
|
||||
mobRegFormat: String = DEFAULT_REG_FORMAT,
|
||||
credType: String,
|
||||
accountEntity: LinkedAccountEntity,
|
||||
isAadhaarConsentProvided : Boolean = false
|
||||
isAadhaarConsentProvided: Boolean = false
|
||||
) = when (credType) {
|
||||
CRED_TYPE_SET_RESET_MPIN -> getCredItemsForRegistration(format = mobRegFormat, accountEntity = accountEntity,isAadhaarConsentProvided = isAadhaarConsentProvided)
|
||||
CRED_TYPE_CHANGE_PIN -> getChangePinCredItems(accountEntity)
|
||||
CRED_TYPE_SET_RESET_MPIN -> getCredItemsForRegistration(
|
||||
format = mobRegFormat,
|
||||
accountEntity = accountEntity,
|
||||
isAadhaarConsentProvided = isAadhaarConsentProvided
|
||||
)
|
||||
|
||||
CRED_TYPE_CHANGE_PIN -> getChangePinCredItems(accountEntity = accountEntity)
|
||||
CRED_TYPE_UPI_LITE_REGISTRATION -> getUpiLiteRegistrationCredItems()
|
||||
CRED_TYPE_UPI_LITE_LOAD_MONEY -> getUpiLiteLoadMoneyCredItems(accountEntity = accountEntity)
|
||||
CRED_TYPE_UPI_LITE_SEND_MONEY -> getUpiLiteSendMoneyCredItems()
|
||||
@@ -61,40 +82,46 @@ class CredItemsProvider {
|
||||
)
|
||||
}
|
||||
return when (format.uppercase()) {
|
||||
"FORMAT1" -> listOf(
|
||||
FORMAT1 -> listOf(
|
||||
CredItem(
|
||||
type = "OTP", subtype = "SMS", dType = "NUM", dLength = accountEntity.otpLength
|
||||
type = CREDTYPE_OTP,
|
||||
subtype = CREDTYPE_SMS,
|
||||
dType = CREDTYPE_DEBIT_NUM,
|
||||
dLength = accountEntity.otpLength
|
||||
), CredItem(
|
||||
type = "PIN",
|
||||
subtype = "MPIN",
|
||||
dType = "NUM",
|
||||
type = CREDTYPE_PIN,
|
||||
subtype = CREDTYPE_MPIN,
|
||||
dType = CREDTYPE_DEBIT_NUM,
|
||||
dLength = accountEntity.mPinLength
|
||||
)
|
||||
)
|
||||
|
||||
"FORMAT2" -> listOf(
|
||||
FORMAT2 -> listOf(
|
||||
CredItem(
|
||||
type = "OTP", subtype = "SMS", dType = "NUM", dLength = accountEntity.otpLength
|
||||
type = CREDTYPE_OTP,
|
||||
subtype = CREDTYPE_SMS,
|
||||
dType = CREDTYPE_DEBIT_NUM,
|
||||
dLength = accountEntity.otpLength
|
||||
), CredItem(
|
||||
type = "OTP",
|
||||
subtype = "ATMPIN",
|
||||
dType = "NUM",
|
||||
type = CREDTYPE_OTP,
|
||||
subtype = CREDTYPE_ATMPIN,
|
||||
dType = CREDTYPE_DEBIT_NUM,
|
||||
dLength = accountEntity.atmPinLength
|
||||
), CredItem(
|
||||
type = "PIN",
|
||||
subtype = "MPIN",
|
||||
dType = "NUM",
|
||||
type = CREDTYPE_PIN,
|
||||
subtype = CREDTYPE_MPIN,
|
||||
dType = CREDTYPE_DEBIT_NUM,
|
||||
dLength = accountEntity.mPinLength
|
||||
)
|
||||
)
|
||||
|
||||
"FORMAT3" -> getAadhaarOtpCredItems()
|
||||
FORMAT3 -> getAadhaarOtpCredItems()
|
||||
|
||||
|
||||
"FORMAT3|FORMAT2", "FORMAT3|FORMAT1" -> if (isAadhaarConsentProvided) {
|
||||
FORMAT3_OR_FORMAT2, FORMAT3_OR_FORMAT1 -> if (isAadhaarConsentProvided) {
|
||||
getAadhaarOtpCredItems()
|
||||
} else {
|
||||
val fallbackFormat = format.substringAfter("|")
|
||||
val fallbackFormat = format.substringAfter(delimiter = PIPE)
|
||||
getCredItemsForRegistration(
|
||||
format = fallbackFormat,
|
||||
accountEntity = accountEntity,
|
||||
@@ -104,9 +131,9 @@ class CredItemsProvider {
|
||||
|
||||
else -> listOf(
|
||||
CredItem(
|
||||
type = "PIN",
|
||||
subtype = "MPIN",
|
||||
dType = "NUM",
|
||||
type = CREDTYPE_PIN,
|
||||
subtype = CREDTYPE_MPIN,
|
||||
dType = CREDTYPE_DEBIT_NUM,
|
||||
dLength = accountEntity.mPinLength
|
||||
)
|
||||
)
|
||||
@@ -115,28 +142,57 @@ class CredItemsProvider {
|
||||
|
||||
private fun getChangePinCredItems(accountEntity: LinkedAccountEntity) = listOf(
|
||||
CredItem(
|
||||
type = "PIN", subtype = "MPIN", dType = "NUM", dLength = accountEntity.mPinLength
|
||||
type = CREDTYPE_PIN,
|
||||
subtype = CREDTYPE_MPIN,
|
||||
dType = CREDTYPE_DEBIT_NUM,
|
||||
dLength = accountEntity.mPinLength
|
||||
), CredItem(
|
||||
type = "PIN", subtype = "NMPIN", dType = "NUM", dLength = accountEntity.mPinLength
|
||||
type = CREDTYPE_PIN,
|
||||
subtype = CREDTYPE_NMPIN,
|
||||
dType = CREDTYPE_DEBIT_NUM,
|
||||
dLength = accountEntity.mPinLength
|
||||
)
|
||||
)
|
||||
|
||||
private fun getUpiLiteRegistrationCredItems() = listOf(
|
||||
CredItem(type = "DEVICE", subtype = "IDENTITY", dType = "ALPH", dLength = "2048")
|
||||
CredItem(
|
||||
type = DEVICE,
|
||||
subtype = CREDTYPE_IDENTITY,
|
||||
dType = ALPH,
|
||||
dLength = UPI_LITE_D_LENGTH
|
||||
)
|
||||
)
|
||||
|
||||
private fun getUpiLiteLoadMoneyCredItems(accountEntity: LinkedAccountEntity) = listOf(
|
||||
CredItem(type = "ARQC", subtype = "SIGNATURE", dType = "ALPH", dLength = "2048"),
|
||||
CredItem(type = "PIN", subtype = "MPIN", dType = "NUM", dLength = accountEntity.mPinLength)
|
||||
CredItem(
|
||||
type = ARQC,
|
||||
subtype = CREDTYPE_SIGNATURE,
|
||||
dType = ALPH,
|
||||
dLength = UPI_LITE_D_LENGTH
|
||||
),
|
||||
CredItem(
|
||||
type = CREDTYPE_PIN,
|
||||
subtype = CREDTYPE_MPIN,
|
||||
dType = CREDTYPE_DEBIT_NUM,
|
||||
dLength = accountEntity.mPinLength
|
||||
)
|
||||
)
|
||||
|
||||
private fun getUpiLiteSendMoneyCredItems() = listOf(
|
||||
CredItem(type = "ARQC", subtype = "SIGNATURE", dType = "ALPH", dLength = "2048")
|
||||
CredItem(
|
||||
type = ARQC,
|
||||
subtype = CREDTYPE_SIGNATURE,
|
||||
dType = ALPH,
|
||||
dLength = UPI_LITE_D_LENGTH
|
||||
)
|
||||
)
|
||||
|
||||
private fun getOtherCredItems(accountEntity: LinkedAccountEntity) = listOf(
|
||||
CredItem(
|
||||
type = "PIN", subtype = "MPIN", dType = "NUM", dLength = accountEntity.mPinLength
|
||||
type = CREDTYPE_PIN,
|
||||
subtype = CREDTYPE_MPIN,
|
||||
dType = CREDTYPE_DEBIT_NUM,
|
||||
dLength = accountEntity.mPinLength
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -23,7 +23,8 @@ const val AMOUNT_MAX_LENGTH_BEFORE_DECIMAL = 6
|
||||
const val AMOUNT_MAX_LENGTH_AFTER_DECIMAL = 2
|
||||
const val AMOUNT_MAX_LENGTH = AMOUNT_MAX_LENGTH_BEFORE_DECIMAL + AMOUNT_MAX_LENGTH_AFTER_DECIMAL + 1
|
||||
const val AMOUNT_MAX_LENGTH_BEFORE_DECIMAL_RCC = 10
|
||||
const val AMOUNT_MAX_LENGTH_RCC = AMOUNT_MAX_LENGTH_BEFORE_DECIMAL_RCC + AMOUNT_MAX_LENGTH_AFTER_DECIMAL + 1
|
||||
const val AMOUNT_MAX_LENGTH_RCC =
|
||||
AMOUNT_MAX_LENGTH_BEFORE_DECIMAL_RCC + AMOUNT_MAX_LENGTH_AFTER_DECIMAL + 1
|
||||
|
||||
// File names
|
||||
const val NAVI_PAY_SECONDARY_SPLASH_LOTTIE = "navi-pay-secondary-splash.lottie"
|
||||
@@ -152,6 +153,7 @@ const val RESOURCE_DEFAULT_ID = -1
|
||||
const val RUPEE_SYMBOL = "₹"
|
||||
const val TRANSITION_DURATION = 200
|
||||
const val RUPEE_SYMBOL_CHAR = '₹'
|
||||
const val PIPE = "|"
|
||||
|
||||
//Deeplink
|
||||
const val FAQ_SCREEN_PATH = "menu/faq"
|
||||
@@ -298,5 +300,7 @@ const val UPI_LITE_CREDBLOCK_INITIAL = "initial"
|
||||
|
||||
//Screen url
|
||||
const val SET_RESET_PIN_SCREEN = "navipay/accountverify/setresetpin"
|
||||
const val PROVIDE_AADHAAR_CONSENT_BOTTOMSHEET = "navipay/accountverify/setresertpin/aadhaarconsentbottomsheet"
|
||||
const val SET_RESET_PIN_SCREEN_MODE_SELECTION_WITH_DEBIT_CARD_DEFAULT = "navipay/accountverify/setresetpin/modeSelectionWithDebitCardDefault"
|
||||
const val PROVIDE_AADHAAR_CONSENT_BOTTOMSHEET =
|
||||
"navipay/accountverify/setresertpin/aadhaarconsentbottomsheet"
|
||||
const val SET_RESET_PIN_SCREEN_MODE_SELECTION_WITH_DEBIT_CARD_DEFAULT =
|
||||
"navipay/accountverify/setresetpin/modeSelectionWithDebitCardDefault"
|
||||
Reference in New Issue
Block a user