implemented RTGS payment feature

This commit is contained in:
asif
2025-08-10 15:29:09 +05:30
parent bfd062be80
commit 2000ec3e4e
4 changed files with 123 additions and 1 deletions

48
src/routes/rtgs.route.js Normal file
View File

@@ -0,0 +1,48 @@
const express = require('express');
const rtgsController = require('../controllers/rtgs.controller');
const { logger } = require('../util/logger');
const rtgsValidator = require('../validators/rtgs.validator.js');
const paymentSecretValidator = require('../validators/payment.secret.validator');
const router = express.Router();
router.use(rtgsValidator, paymentSecretValidator);
const rtgsRoute = async (req, res) => {
const {
fromAccount,
toAccount,
ifscCode,
amount,
beneficiaryName,
remitterName,
} = req.body;
try {
const result = await rtgsController.send(
fromAccount,
toAccount,
amount,
ifscCode,
beneficiaryName,
remitterName
);
if (result.status.startsWith('O.K.')) {
const utr = result.status.slice(9, 25);
return res.json({ message: 'SUCCESS', utr });
} else if (result.status.includes('INSUFFICIENT FUNDS')) {
return res.status(422).json({ error: 'INSUFFICIENT_FUNDS' });
} else if (result.status.include('INVALID CHECK DIGIT')) {
return res.status(400).json({ error: 'INVALID_ACCOUNT_NUMBER' });
} else {
return res.status(400).json({ error: 'PROBLEM_TRANSFERRING_FUNDS' });
}
} catch (error) {
logger.error(error, 'error occured while doing NEFT transaction');
return res.status(500).json({ error: 'INTERNAL_SERVER_ERROR' });
}
};
router.post('/', rtgsRoute);
module.exports = router;