implemented quick pay within bank

This commit is contained in:
2025-06-25 23:46:17 +05:30
parent d813784305
commit e3bd1657c0
14 changed files with 262 additions and 13 deletions

View File

@@ -0,0 +1,11 @@
const authController = require('../controllers/auth.controller');
const authenticate = require('../middlewares/auth.middleware');
const express = require('express');
const router = express.Router();
router.post('/login', authController.login);
router.get('/tpin', authenticate, authController.tpin);
router.post('/tpin', authenticate, authController.setTpin);
module.exports = router;

View File

@@ -0,0 +1,15 @@
const customerController = require('../controllers/customer_details.controller');
const { logger } = require('../util/logger');
const customerRoute = async (req, res) => {
const customerNo = req.user;
try {
const details = await customerController.getDetails(customerNo);
return res.json(details);
} catch (err) {
logger.error(err);
return res.status(500).json({ message: 'INTERNAL_SERVER_ERROR' });
}
};
module.exports = customerRoute;

View File

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

View File

@@ -0,0 +1,17 @@
const transactionsController = require('../controllers/transactions.controller');
const { logger } = require('../util/logger');
const transactionsRoute = async (req, res) => {
const accountNo = req.params.accountNo;
try {
const data = await transactionsController.getLastTen(accountNo);
return res.json(data);
} catch (error) {
logger.error('error retriving last 10 txns', error);
return res
.status(500)
.json({ message: 'error occured while fetching transactions' });
}
};
module.exports = transactionsRoute;

View File

@@ -0,0 +1,45 @@
const transferController = require('../controllers/transfer.controller');
const { logger } = require('../util/logger');
const express = require('express');
const tpinValidator = require('../validators/tpin.validator');
const transferValidator = require('../validators/transfer.validator');
const router = express.Router();
router.use(tpinValidator, transferValidator);
const transferRoute = async (req, res) => {
const { fromAccount, toAccount, toAccountType, amount } = req.body;
try {
const result = await transferController.transfer(
fromAccount,
toAccount,
toAccountType,
amount
);
if (result.status === 'O.K.') {
return res.json({ message: 'TRANSACTION_SUCCESS' });
} else if (result.status.includes('INVALID CHECK DIGIT')) {
return res
.status(400)
.json({ error: 'INVALID_ACCOUNT_NO', status: result.status });
} else if (
result.status.includes('CLEARED BAL/FUNDS/DP NOT AVAILABLE.CARE')
) {
return res
.status(400)
.json({ error: 'INSUFFICIENT_BALANCE', status: result.status });
} else {
return res
.status(400)
.json({ error: 'PROBLEM_TRANSFERRING_FUNDS', status: result.status });
}
} catch (error) {
logger.error(error, 'error occured while doing transfer');
return res.status(500).json({ error: 'INTERNAL_SERVER_ERROR' });
}
};
router.post('/', transferRoute);
module.exports = router;