feat: added daily limit feature

This commit is contained in:
2025-10-28 15:44:43 +05:30
parent 9f2f557b03
commit 7757b464b3
14 changed files with 129 additions and 30 deletions

View File

@@ -0,0 +1,28 @@
const { logger } = require('../util/logger');
const {
getDailyLimit,
getUsedLimit,
} = require('../services/paymentLimit.service');
async function checkLimit(req, res, next) {
const { amount } = req.body;
const { user, client } = req;
const dailyLimit = await getDailyLimit(user, client);
const usedLimit = await getUsedLimit(user, client);
const remainingLimit = dailyLimit - usedLimit;
logger.info(
`dailyLimit = ${dailyLimit} | usedLimit = ${usedLimit} | remainingLimit = ${remainingLimit}`
);
if (amount > remainingLimit) {
const midnight = new Date();
midnight.setHours(24, 0, 0, 0);
res.set('Retry-After', midnight.toUTCString());
return res.status(403).json({ error: 'Daily limit exhausted' });
}
next();
}
module.exports = { checkLimit };