implemented quick pay within bank

This commit is contained in:
2025-06-25 23:46:17 +05:30
parent d813784305
commit e3bd1657c0
14 changed files with 262 additions and 13 deletions

View File

@@ -1,4 +1,4 @@
const { validateUser } = require('../services/auth.service');
const authService = require('../services/auth.service');
const { generateToken } = require('../util/jwt');
const { logger } = require('../util/logger');
@@ -12,9 +12,9 @@ async function login(req, res) {
}
try {
const user = await validateUser(customerNo, password);
const user = await authService.validateUser(customerNo, password);
if (!user) return res.status(401).json({ error: 'invalid credentials' });
const token = generateToken(user.customer_no);
const token = generateToken(user.customer_no, '1d');
res.json({ token });
} catch (err) {
logger.error(err, 'login failed');
@@ -22,4 +22,38 @@ async function login(req, res) {
}
}
module.exports = { login };
async function tpin(req, res) {
const customerNo = req.user;
try {
const user = await authService.findUserByCustomerNo(customerNo);
if (!user) return res.status(404).json({ message: 'USER_NOT_FOUND' });
if (!user.tpin) {
return res.json({ tpinSet: false });
} else {
return res.json({ tpinSet: true });
}
} catch (err) {
logger.error(err, 'error occured while checking tpin');
res.status(500).json({ error: 'something went wrong' });
}
}
async function setTpin(req, res) {
const customerNo = req.user;
try {
const user = await authService.findUserByCustomerNo(customerNo);
if (!user) return res.status(404).json({ error: 'USER_NOT_FOUND' });
if (user.tpin)
return res.status(400).json({ error: 'USER_ALREADY_HAS_A_TPIN' });
const { tpin } = req.body;
if (!/^\d{6}$/.test(tpin))
return res.status(400).json({ error: 'INVALID_TPIN_FORMAT' });
authService.setTpin(customerNo, tpin);
return res.json({ message: 'TPIN_SET' });
} catch (error) {
logger.error(error);
return res.status(500).json({ error: 'SOMETHING_WENT_WRONG' });
}
}
module.exports = { login, tpin, setTpin };