137 lines
4.0 KiB
JavaScript
137 lines
4.0 KiB
JavaScript
const express = require('express');
|
|
const { logger } = require('../util/logger');
|
|
const axios = require('axios');
|
|
const paymentSecretValidator = require('../validators/payment.secret.validator');
|
|
|
|
const chequeEnquiryRoute = async (req, res) => {
|
|
const { accountNumber, instrumentType } = req.query;
|
|
if (!accountNumber || !instrumentType) {
|
|
return res.status(400).json({ error: 'BAD_REQUEST' });
|
|
}
|
|
|
|
try {
|
|
const response = await axios.get('http://localhost:8444/kccb/cheque', {
|
|
params: { accountno: accountNumber, instrType: instrumentType },
|
|
});
|
|
|
|
return res.json(response.data);
|
|
} catch (error) {
|
|
logger.error('Unable to fetch cheque data: ', error);
|
|
return res.status(500).json({ error: 'INTERNAL_SERVER_ERROR' });
|
|
}
|
|
};
|
|
|
|
const chequeStopRoute = async (req, res) => {
|
|
const {
|
|
accountNumber,
|
|
instrumentType,
|
|
stopFromChequeNo,
|
|
stopToChequeNo,
|
|
stopIssueDate,
|
|
stopExpiryDate,
|
|
stopAmount,
|
|
stopComment,
|
|
chqIssueDate,
|
|
} = req.body;
|
|
|
|
if (!accountNumber || !instrumentType || !stopFromChequeNo) {
|
|
console.log('missing');
|
|
return res.status(400).json({ error: 'BAD_REQUEST' });
|
|
}
|
|
|
|
try {
|
|
const response = await axios.post(
|
|
'http://localhost:8444/kccb/chequeSetStop',
|
|
{
|
|
accountno: accountNumber,
|
|
stopFromChequeNo: stopFromChequeNo,
|
|
instrType: instrumentType,
|
|
stopToChequeNo: stopToChequeNo,
|
|
stopIssueDate: stopIssueDate,
|
|
stopExpiryDate: stopExpiryDate,
|
|
stopAmount: stopAmount,
|
|
stopComment: stopComment,
|
|
chqIssueDate: chqIssueDate,
|
|
}
|
|
);
|
|
|
|
console.log('response from stop cheque api: ', response.data);
|
|
return res.json(response.data);
|
|
} catch (e) {
|
|
logger.error('Unable to fetch cheque data: ', e);
|
|
if (axios.isAxiosError(e)) {
|
|
if (e.response) {
|
|
// Server responded with a status outside 2xx
|
|
return res.status(e.response.status).json(e.response.data);
|
|
} else {
|
|
return res
|
|
.status(e.response.status)
|
|
.json({ error: 'UNKNOWN', message: 'NO_RESPONSE_FROM_CBS' });
|
|
}
|
|
}
|
|
return res.status(500).json({ error: 'INTERNAL_SERVER_ERROR' });
|
|
}
|
|
};
|
|
|
|
const revokeStop = async (req, res) => {
|
|
const {
|
|
accountNumber,
|
|
instrumentType,
|
|
removeFromChequeNo,
|
|
removeToChequeNo,
|
|
removeIssueDate,
|
|
removeExpiryDate,
|
|
removeAmount,
|
|
removeComment,
|
|
} = req.body;
|
|
|
|
if (!accountNumber || !instrumentType || !removeFromChequeNo) {
|
|
console.log('missing');
|
|
return res.status(400).json({ error: 'BAD_REQUEST' });
|
|
}
|
|
|
|
try {
|
|
const response = await axios.post(
|
|
'http://localhost:8444/kccb/chequeRemoveStop',
|
|
{
|
|
accountno: accountNumber,
|
|
removeFromChequeNo: removeFromChequeNo,
|
|
instrType: instrumentType,
|
|
removeToChequeNo: removeToChequeNo,
|
|
removeIssueDate: removeIssueDate,
|
|
removeExpiryDate: removeExpiryDate,
|
|
removeAmount: removeAmount,
|
|
removeComment: removeComment,
|
|
}
|
|
);
|
|
|
|
console.log('response from stop cheque api: ', response.data);
|
|
return res.json(response.data);
|
|
} catch (e) {
|
|
logger.error('Unable to fetch cheque data: ', e);
|
|
if (axios.isAxiosError(e)) {
|
|
if (e.response) {
|
|
// Server responded with a status outside 2xx
|
|
return res.status(e.response.status).json(e.response.data);
|
|
} else {
|
|
return res
|
|
.status(e.response.status)
|
|
.json({ error: 'UNKNOWN', message: 'NO_RESPONSE_FROM_CBS' });
|
|
}
|
|
}
|
|
return res.status(500).json({ error: 'INTERNAL_SERVER_ERROR' });
|
|
}
|
|
};
|
|
const enquiryRouter = express.Router();
|
|
const stopRouter = express.Router();
|
|
const removeStopRouter = express.Router();
|
|
const router = express.Router();
|
|
enquiryRouter.get('/enquiry', chequeEnquiryRoute);
|
|
stopRouter.use(paymentSecretValidator);
|
|
stopRouter.post('/stop', chequeStopRoute);
|
|
removeStopRouter.use(paymentSecretValidator);
|
|
removeStopRouter.post('/removeStop', revokeStop);
|
|
router.use(enquiryRouter, stopRouter, removeStopRouter);
|
|
|
|
module.exports = router;
|