Files
yume_js/src/routes/transfer.route.js

47 lines
1.5 KiB
JavaScript

const transferController = require('../controllers/transfer.controller');
const { logger } = require('../util/logger');
const express = require('express');
const transferValidator = require('../validators/transfer.validator');
const passwordValidator = require('../validators/payment.secret.validator.js');
const router = express.Router();
router.use(passwordValidator, transferValidator);
const transferRoute = async (req, res) => {
const { fromAccount, toAccount, toAccountType, amount } = req.body;
try {
const result = await transferController.transfer(
fromAccount,
toAccount,
toAccountType,
amount,
req.user
);
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;