added beneficiary routes

This commit is contained in:
2025-07-17 12:32:36 +05:30
parent 09c40dfaba
commit 32f6430a5c
4 changed files with 51 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
const { logger } = require('../util/logger');
const beneficiaryService = require('../services/beneficiary.service');
async function validateWithinBank(req, res) {
const { accountNumber } = req.query;
if (!accountNumber) {
res.status(400).json({
error: 'account number is required',
});
}
try {
const beneficiaryName =
await beneficiaryService.validateWithinBank(accountNumber);
if (!beneficiaryName)
return res.status(401).json({ error: 'invalid account number' });
return res.json({ name: beneficiaryName });
} catch (err) {
logger.error(err, 'beneficiary validation within bank failed');
res.status(500).json({ error: 'invalid account number' });
}
}
module.exports = { validateWithinBank };

View File

@@ -0,0 +1,8 @@
const express = require('express');
const beneficiaryController = require('../controllers/beneficiary.controller');
const router = express.Router();
router.get('/validate/within-bank', beneficiaryController.validateWithinBank);
module.exports = router;

View File

@@ -4,6 +4,7 @@ const detailsRoute = require('./customer_details.route');
const transactionRoute = require('./transactions.route'); const transactionRoute = require('./transactions.route');
const authenticate = require('../middlewares/auth.middleware'); const authenticate = require('../middlewares/auth.middleware');
const transferRoute = require('./transfer.route'); const transferRoute = require('./transfer.route');
const beneficiaryRoute = require('./beneficiary.route');
const router = express.Router(); const router = express.Router();
@@ -11,5 +12,6 @@ router.use('/auth', authRoute);
router.use('/customer', authenticate, detailsRoute); router.use('/customer', authenticate, detailsRoute);
router.use('/transactions/account/:accountNo', authenticate, transactionRoute); router.use('/transactions/account/:accountNo', authenticate, transactionRoute);
router.use('/payment/transfer', authenticate, transferRoute); router.use('/payment/transfer', authenticate, transferRoute);
router.use('/beneficiary', beneficiaryRoute);
module.exports = router; module.exports = router;

View File

@@ -0,0 +1,16 @@
const { logger } = require('../util/logger');
async function validateWithinBank(accountNo) {
const url = `http://localhost:8687/kccb/cbs/acctInfo/details?stacctno=${accountNo}`;
try {
const response = await fetch(url);
const data = await response.json();
const customerName = data.customername;
return customerName;
} catch (error) {
logger.error(error, 'error while fetching customer details');
throw new Error('unable to fetch customer name');
}
}
module.exports = { validateWithinBank };