added two routes for getting and setting the daily limit of users
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
const customerController = require('../controllers/customer_details.controller');
|
||||
const {
|
||||
getDailyLimit,
|
||||
getUsedLimit,
|
||||
setDailyLimit,
|
||||
} = require('../services/paymentLimit.service');
|
||||
const { logger } = require('../util/logger');
|
||||
const express = require('express');
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
const customerRoute = async (req, res) => {
|
||||
const customerNo = req.user;
|
||||
@@ -12,4 +20,45 @@ const customerRoute = async (req, res) => {
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = customerRoute;
|
||||
const limitRoute = async (req, res) => {
|
||||
const customerNo = req.user;
|
||||
const client = req.client;
|
||||
|
||||
try {
|
||||
const dailyLimit = await getDailyLimit(customerNo, client);
|
||||
if (!dailyLimit) {
|
||||
return res.status(400).json({ error: 'NO DAILY LIMIT SET FOR USER' });
|
||||
}
|
||||
const usedLimit = await getUsedLimit(customerNo, client);
|
||||
res.json({ dailyLimit: dailyLimit, usedLimit: usedLimit });
|
||||
} catch (err) {
|
||||
logger.error(err, 'Unknown error encountered while checking daily limit');
|
||||
res.status(500).json({ error: 'INTERNAL_SERVER_ERROR' });
|
||||
}
|
||||
};
|
||||
const limitChangeRoute = async (req, res) => {
|
||||
const customerNo = req.user;
|
||||
const client = req.client;
|
||||
const { amount } = req.body;
|
||||
const numericLimit = Number(amount);
|
||||
|
||||
if (!Number.isFinite(numericLimit)) {
|
||||
logger.error(`Invalid new Limit, found: ${newLimit}`);
|
||||
return res
|
||||
.status(400)
|
||||
.json({ error: 'NEW LIMIT AMOUNT IS REQUIRED WHEN SETTING LIMIT' });
|
||||
}
|
||||
try {
|
||||
await setDailyLimit(customerNo, client, numericLimit);
|
||||
return res.status(200).json({ message: 'LIMIT SET' });
|
||||
} catch (err) {
|
||||
logger.error(err, 'Unexpected error while setting limit amount');
|
||||
res.status(500).json({ error: 'INTERNAL SERVER ERROR' });
|
||||
}
|
||||
};
|
||||
|
||||
router.get('/', customerRoute);
|
||||
router.get('/daily-limit', limitRoute);
|
||||
router.post('/daily-limit', limitChangeRoute);
|
||||
|
||||
module.exports = router;
|
||||
|
||||
Reference in New Issue
Block a user