refactor: Update source code with the NPCI and CBS API

This commit is contained in:
2025-08-25 14:21:40 +05:30
parent 78426747e5
commit 671ea780b3
16 changed files with 392 additions and 173 deletions

View File

@@ -14,43 +14,13 @@ interface accountData {
custname: string;
}
const MockBeneficiaryData =
[
{
'stBankName': 'Kangra Central Co-operative Bank',
'stBenAccountNo': '50077736845',
'stBenName': 'RAJAT MAHARANA',
},
{
'stBankName': 'Kangra Central Co-operative Bank',
'stBenAccountNo': '50077742351',
'stBenName': 'RAJAT MAHARANA',
},
{
'stBankName': 'Kangra Central Co-operative Bank',
'stBenAccountNo': '20002076570',
'stBenName': 'Mr. PUSHKAR . SHARMA',
},
{
'stBankName': 'State Bank of India',
'stBenAccountNo': '50077742361',
'stIFSC': 'SBIN0004567',
'stBenName': 'Sachin Sharma',
},
{
'stBankName': 'ICICI',
'stBenAccountNo': '90088842361',
'stIFSC': 'ICICI0004567',
'stBenName': 'Eshika Paul',
},
]
export default function SendToBeneficiaryOwn() {
const router = useRouter();
const [bankType, setBankType] = useState("own");
const [authorized, setAuthorized] = useState<boolean | null>(null);
const [accountData, setAccountData] = useState<accountData[]>([]);
const [selectedAccNo, setSelectedAccNo] = useState<string | null>(null);
const [beneficiaryData, setBeneficiaryData] = useState<any[]>([]);
const [beneficiaryAcc, setBeneficiaryAcc] = useState<string | null>(null);
const [beneficiaryName, setBeneficiaryName] = useState<string | null>(null);
const [beneficiaryType, setBeneficiaryType] = useState<string | null>(null);
@@ -77,25 +47,35 @@ export default function SendToBeneficiaryOwn() {
label: `${acc.stAccountNo} (${acc.stAccountType})`,
}));
const benAccountOption = MockBeneficiaryData.filter((ben_acc) =>
bankType === 'own' ? ben_acc.stBankName === 'Kangra Central Co-operative Bank' : true)
.map((ben_acc) => ({
value: ben_acc.stBenAccountNo,
label: `${ben_acc.stBenAccountNo}-${ben_acc.stBenName}`,
}));
const handleBeneficiary = (benAcc: string | null) => {
if (benAcc) {
setBeneficiaryAcc(benAcc);
const selected = MockBeneficiaryData.find((item) => item.stBenAccountNo === benAcc);
if (selected)
setBeneficiaryName(selected.stBenName);
const FetchBeneficiaryDetails = async () => {
try {
const token = localStorage.getItem("access_token");
const response = await fetch("/api/beneficiary", {
method: "GET",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
});
const data = await response.json();
console.log(data);
if (response.ok && Array.isArray(data)) {
setBeneficiaryData(data);
} else {
notifications.show({
title: "Error",
message: "Unable to fetch beneficiary list",
color: "red",
});
}
} catch {
notifications.show({
title: "Error",
message: "Something went wrong while fetching beneficiaries",
color: "red",
});
}
else {
setBeneficiaryAcc('');
setBeneficiaryName('');
}
}
};
const FetchAccountDetails = async () => {
try {
@@ -136,9 +116,37 @@ export default function SendToBeneficiaryOwn() {
useEffect(() => {
if (authorized) {
FetchAccountDetails();
FetchBeneficiaryDetails();
}
}, [authorized]);
const benAccountOption = beneficiaryData
.filter((ben) =>
bankType === "own" ? ben.ifscCode?.startsWith("KACE") : true
)
.map((ben) => ({
value: ben.accountNo,
label: `${ben.accountNo} - ${ben.name}`,
}));
const handleBeneficiary = (benAcc: string | null) => {
if (benAcc) {
setBeneficiaryAcc(benAcc);
const selected = beneficiaryData.find(
(item) => item.accountNo === benAcc
);
if (selected) {
setBeneficiaryName(selected.name);
setBeneficiaryType(selected.accountType);
}
} else {
setBeneficiaryAcc(null);
setBeneficiaryName(null);
setBeneficiaryType(null);
}
};
async function handleProceed() {
if (!selectedAccNo || !beneficiaryAcc! || !beneficiaryName || !beneficiaryType || !amount || !remarks) {
notifications.show({
@@ -253,7 +261,6 @@ export default function SendToBeneficiaryOwn() {
};
if (!authorized) return null;
return (
<>
<Modal
@@ -351,7 +358,6 @@ export default function SendToBeneficiaryOwn() {
withAsterisk
readOnly={showOtpField}
/>
<TextInput
label="Amount"
type="number"

View File

@@ -43,11 +43,11 @@ const MockBeneficiaryData =
},
]
export default function SendToBeneficiaryOthers() {
const router = useRouter();
const [authorized, setAuthorized] = useState<boolean | null>(null);
const [accountData, setAccountData] = useState<accountData[]>([]);
const [beneficiaryData, setBeneficiaryData] = useState<any[]>([]);
const [selectedAccNo, setSelectedAccNo] = useState<string | null>(null);
const [beneficiaryAcc, setBeneficiaryAcc] = useState<string | null>(null);
const [beneficiaryName, setBeneficiaryName] = useState<string | null>(null);
@@ -70,31 +70,63 @@ export default function SendToBeneficiaryOthers() {
setGenerateOtp(value);
return value;
}
const FetchBeneficiaryDetails = async () => {
try {
const token = localStorage.getItem("access_token");
const response = await fetch("/api/beneficiary", {
method: "GET",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
});
const data = await response.json();
console.log(data);
if (response.ok && Array.isArray(data)) {
setBeneficiaryData(data);
} else {
notifications.show({
title: "Error",
message: "Unable to fetch beneficiary list",
color: "red",
});
}
} catch {
notifications.show({
title: "Error",
message: "Something went wrong while fetching beneficiaries",
color: "red",
});
}
};
const selectedAccount = accountData.find((acc) => acc.stAccountNo === selectedAccNo);
const accountOptions = accountData.map((acc) => ({
value: acc.stAccountNo,
label: `${acc.stAccountNo} (${acc.stAccountType})`,
}));
const benAccountOption = MockBeneficiaryData.filter((ben_acc) =>
ben_acc.stBankName !== 'Kangra Central Co-operative Bank')
.map((ben_acc) => ({
value: ben_acc.stBenAccountNo,
label: ben_acc.stBenAccountNo,
const benAccountOption = beneficiaryData.
filter((ben) => !ben.ifscCode?.startsWith("KACE"))
.map((ben) => ({
value: ben.accountNo,
label: `${ben.accountNo} - ${ben.name}`,
}));
const handleBeneficiary = (benAcc: string | null) => {
if (benAcc) {
setBeneficiaryAcc(benAcc);
const selected = MockBeneficiaryData.find((item) => item.stBenAccountNo === benAcc);
if (selected)
setBeneficiaryName(selected.stBenName);
setBeneficiaryIFSC(selected?.stIFSC ?? '');
}
else {
setBeneficiaryAcc('');
setBeneficiaryName('');
setBeneficiaryIFSC('');
const handleBeneficiary = (ben: string | null) => {
if (ben) {
setBeneficiaryAcc(ben);
const selected = beneficiaryData.find((item) => item.accountNo === ben && !item.ifscCode?.startsWith("KACE"));
if (selected) {
setBeneficiaryName(selected.name);
setBeneficiaryIFSC(selected?.ifscCode ?? '');
}
else {
setBeneficiaryAcc('');
setBeneficiaryName('');
setBeneficiaryIFSC('');
}
}
}
@@ -137,6 +169,7 @@ export default function SendToBeneficiaryOthers() {
useEffect(() => {
if (authorized) {
FetchAccountDetails();
FetchBeneficiaryDetails();
}
}, [authorized]);