From 69c5ccba1d108eef8c045d8e454ef175e5b9edd5 Mon Sep 17 00:00:00 2001 From: asif Date: Fri, 9 Jan 2026 12:27:41 +0530 Subject: [PATCH] feat: added cheque management routes --- src/routes/cheque.route.js | 73 ++++++++++++++++++++++++++++++++++++++ src/routes/index.js | 2 ++ 2 files changed, 75 insertions(+) create mode 100644 src/routes/cheque.route.js diff --git a/src/routes/cheque.route.js b/src/routes/cheque.route.js new file mode 100644 index 0000000..de63c0c --- /dev/null +++ b/src/routes/cheque.route.js @@ -0,0 +1,73 @@ +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 (error) { + logger.error('Unable to fetch cheque data: ', error); + return res.status(500).json({ error: 'INTERNAL_SERVER_ERROR' }); + } +}; +const enquiryRouter = express.Router(); +const stopRouter = express.Router(); +const router = express.Router(); +enquiryRouter.get('/enquiry', chequeEnquiryRoute); +stopRouter.use(paymentSecretValidator); +stopRouter.post('/stop', chequeStopRoute); +router.use(enquiryRouter, stopRouter); + +module.exports = router; diff --git a/src/routes/index.js b/src/routes/index.js index 22814bc..a32e404 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -16,6 +16,7 @@ const { npciResponse } = require('../controllers/npci.controller'); const otp = require('./otp.route'); const reports =require('./report.route'); const eMandate = require('./emandate.route'); +const chequeRoute = require('./cheque.route'); const router = express.Router(); router.use('/auth', authRoute); @@ -30,6 +31,7 @@ router.use('/npci/beneficiary-response', npciResponse); router.use('/e-mandate', authenticate, eMandate); router.use('/branch', authenticate, branchRoute); router.use('/atm', authenticate, atmRoute); +router.use('/cheque', authenticate, chequeRoute); // OTP router.use('/otp', otp);