feat: added transactions record keeping feature

This commit is contained in:
2025-09-08 20:04:55 +05:30
parent 05068634fe
commit f675f1561a
9 changed files with 120 additions and 6 deletions

View File

@@ -1,7 +1,11 @@
const axios = require('axios');
const { logger } = require('../util/logger');
const {
recordInterBankTransaction,
} = require('../services/recordkeeping.service');
async function send(
customerNo,
fromAccount,
toAccount,
amount,
@@ -20,7 +24,6 @@ async function send(
stTransferAmount: amount,
stRemarks: remarks,
};
logger.info(reqData, 'request data to be sent to IMPS server');
const response = await axios.post(
'http://localhost:6768/kccb/api/IMPS/Producer',
reqData,
@@ -30,7 +33,17 @@ async function send(
},
}
);
logger.info(response, 'response from IMPS');
await recordInterBankTransaction(
customerNo,
'imps',
fromAccount,
toAccount,
ifscCode,
amount,
'',
'',
response.data
);
return response.data;
} catch (error) {
logger.error(error, 'error from IMPS');

View File

@@ -1,6 +1,10 @@
const axios = require('axios');
const {
recordInterBankTransaction,
} = require('../services/recordkeeping.service');
async function send(
customerNo,
fromAccount,
toAccount,
amount,
@@ -8,6 +12,7 @@ async function send(
beneficiaryName,
remitterName
) {
const commission = 0;
try {
const response = await axios.post(
'http://localhost:8690/kccb/Neftfundtransfer',
@@ -15,7 +20,7 @@ async function send(
stFromAcc: fromAccount,
stToAcc: toAccount,
stTranAmt: amount,
stCommission: 0,
stCommission: commission,
stIfscCode: ifscCode,
stFullName: remitterName,
stBeneName: beneficiaryName,
@@ -24,6 +29,18 @@ async function send(
stAddress3: '',
}
);
await recordInterBankTransaction(
customerNo,
'neft',
fromAccount,
toAccount,
ifscCode,
amount,
commission,
beneficiaryName,
remitterName,
response.data.status
);
return response.data;
} catch (error) {
throw new Error(

View File

@@ -1,6 +1,10 @@
const axios = require('axios');
const {
recordInterBankTransaction,
} = require('../services/recordkeeping.service');
async function send(
customerNo,
fromAccount,
toAccount,
amount,
@@ -8,6 +12,7 @@ async function send(
beneficiaryName,
remitterName
) {
const commission = 0;
try {
const response = await axios.post(
'http://localhost:8690/kccb/Rtgsfundtransfer',
@@ -15,7 +20,7 @@ async function send(
stFromAcc: fromAccount,
stToAcc: toAccount,
stTranAmt: amount,
stCommission: 0,
stCommission: commission,
stIfscCode: ifscCode,
stFullName: remitterName,
stBeneName: beneficiaryName,
@@ -24,6 +29,18 @@ async function send(
stAddress3: '',
}
);
await recordInterBankTransaction(
customerNo,
'rtgs',
fromAccount,
toAccount,
ifscCode,
amount,
commission,
beneficiaryName,
remitterName,
response.data.status
);
return response.data;
} catch (error) {
throw new Error(

View File

@@ -1,11 +1,14 @@
const axios = require('axios');
const {
recordIntraBankTransaction,
} = require('../services/recordkeeping.service');
async function transfer(
fromAccountNo,
toAccountNo,
toAccountType,
amount,
// narration = 'transfer from mobile'
customerNo,
narration = ''
) {
try {
@@ -19,6 +22,14 @@ async function transfer(
narration,
}
);
await recordIntraBankTransaction(
customerNo,
fromAccountNo,
toAccountNo,
toAccountType,
amount,
response.data.status
);
return response.data;
} catch (error) {
throw new Error(

View File

@@ -13,6 +13,7 @@ const impsRoute = async (req, res) => {
try {
const result = await impsController.send(
req.user,
fromAccount,
toAccount,
amount,

View File

@@ -19,6 +19,7 @@ const neftRoute = async (req, res) => {
try {
const result = await neftController.send(
req.user,
fromAccount,
toAccount,
amount,

View File

@@ -19,6 +19,7 @@ const rtgsRoute = async (req, res) => {
try {
const result = await rtgsController.send(
req.user,
fromAccount,
toAccount,
amount,

View File

@@ -14,7 +14,8 @@ const transferRoute = async (req, res) => {
fromAccount,
toAccount,
toAccountType,
amount
amount,
req.user
);
if (result.status === 'O.K.') {

View File

@@ -0,0 +1,52 @@
const db = require('../config/db');
const recordIntraBankTransaction = async (
customerNo,
fromAccount,
toAccount,
accountType,
amount,
status
) => {
const trxType = 'TRF';
const query =
'INSERT INTO transactions (customer_no, trx_type, from_account, to_account, to_account_type, amount, status) VALUES ($1, $2, $3, $4, $5, $6, $7)';
await db.query(query, [
customerNo,
trxType,
fromAccount,
toAccount,
accountType,
amount,
status,
]);
};
const recordInterBankTransaction = async (
customerNo,
trxType,
fromAccount,
toAccount,
ifscCode,
amount,
commission,
beneficiaryName,
remitterName,
status
) => {
const query =
'INSERT INTO transactions (customer_no, trx_type, from_account, to_account, ifsc_code, amount, commission, beneficiary_name, remitter_name, status) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)';
await db.query(query, [
customerNo,
trxType,
fromAccount,
toAccount,
ifscCode,
amount,
commission,
beneficiaryName,
remitterName,
status,
]);
};
module.exports = { recordIntraBankTransaction, recordInterBankTransaction };