feat: implemented routes for getting and setting customer tnc flag
This commit is contained in:
@@ -359,6 +359,28 @@ async function setUserName(req, res) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function getTncAcceptanceFlag(req, res) {
|
||||||
|
try {
|
||||||
|
const flag = await authService.getTncFlag(req.user, req.client);
|
||||||
|
res.json({ tnc_accepted: flag });
|
||||||
|
} catch (error) {
|
||||||
|
logger.error(error, 'error occured while getting tnc flag');
|
||||||
|
res.status(500).json({ error: 'INTERNAL SERVER ERROR' });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function setTncAcceptanceFlag(req, res) {
|
||||||
|
try {
|
||||||
|
const { flag } = req.body;
|
||||||
|
if (typeof flag !== 'boolean')
|
||||||
|
res.staus(400).json({ error: 'invalid value for flag' });
|
||||||
|
await authService.setTncFlag(req.user, req.client, flag);
|
||||||
|
} catch (error) {
|
||||||
|
logger.error(error, 'error occured while updating tnc flag');
|
||||||
|
res.status(500).json({ error: 'INTERNAL SERVER ERROR' });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
login,
|
login,
|
||||||
tpin,
|
tpin,
|
||||||
@@ -371,4 +393,6 @@ module.exports = {
|
|||||||
changeTransPassword,
|
changeTransPassword,
|
||||||
isUserNameExits,
|
isUserNameExits,
|
||||||
setUserName,
|
setUserName,
|
||||||
|
getTncAcceptanceFlag,
|
||||||
|
setTncAcceptanceFlag,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -28,4 +28,7 @@ router.post(
|
|||||||
router.get('/user_name', authenticate, authController.isUserNameExits);
|
router.get('/user_name', authenticate, authController.isUserNameExits);
|
||||||
router.post('/user_name', authenticate, authController.setUserName);
|
router.post('/user_name', authenticate, authController.setUserName);
|
||||||
|
|
||||||
|
router.get('/tnc', authenticate, authController.getTncAcceptanceFlag);
|
||||||
|
router.post('/tnc', authenticate, authController.setTncAcceptanceFlag);
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|||||||
@@ -127,16 +127,16 @@ async function changeTransPassword(customerNo, trans_psw) {
|
|||||||
|
|
||||||
async function CheckUserName(customerNo) {
|
async function CheckUserName(customerNo) {
|
||||||
try {
|
try {
|
||||||
const result = await db.query('SELECT preferred_name from users WHERE customer_no = $1',
|
const result = await db.query(
|
||||||
|
'SELECT preferred_name from users WHERE customer_no = $1',
|
||||||
[customerNo]
|
[customerNo]
|
||||||
);
|
);
|
||||||
if (result.rows.length > 0) {
|
if (result.rows.length > 0) {
|
||||||
return result.rows[0].preferred_name;;
|
return result.rows[0].preferred_name;
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
} catch (error) {
|
||||||
catch (error) {
|
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`error occurred while fetch the preferred name ${error.message}`
|
`error occurred while fetch the preferred name ${error.message}`
|
||||||
);
|
);
|
||||||
@@ -150,12 +150,12 @@ async function setUserName(customerNo, username) {
|
|||||||
'UPDATE users SET preferred_name = $1 ,updated_at = $2 WHERE customer_no = $3',
|
'UPDATE users SET preferred_name = $1 ,updated_at = $2 WHERE customer_no = $3',
|
||||||
[username, currentTime, customerNo]
|
[username, currentTime, customerNo]
|
||||||
);
|
);
|
||||||
logger.info("user table updated");
|
logger.info('user table updated');
|
||||||
await db.query(
|
await db.query(
|
||||||
"INSERT INTO preferred_name_history (customer_no, preferred_name) VALUES ($1, $2)",
|
'INSERT INTO preferred_name_history (customer_no, preferred_name) VALUES ($1, $2)',
|
||||||
[customerNo, username]
|
[customerNo, username]
|
||||||
);
|
);
|
||||||
logger.info("preferred_name_history table updated");
|
logger.info('preferred_name_history table updated');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.code === '23505') {
|
if (error.code === '23505') {
|
||||||
throw new Error('PREFERRED_NAME_ALREADY_EXISTS');
|
throw new Error('PREFERRED_NAME_ALREADY_EXISTS');
|
||||||
@@ -166,6 +166,32 @@ async function setUserName(customerNo, username) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function getTncFlag(customerNo, clientType) {
|
||||||
|
let query = '';
|
||||||
|
if (clientType === 'MB') {
|
||||||
|
query = 'SELECT tnc_mobile AS tnc_flag FROM users WHERE customer_no = $1';
|
||||||
|
} else if (clientType === 'IB') {
|
||||||
|
query = 'SELECT tnc_inb AS tnc_flag FROM users WHERE customer_no = $1';
|
||||||
|
} else {
|
||||||
|
throw new Error('UNKNOWN_CLIENT_TYPE. ONLY IB AND MB ALLOWED');
|
||||||
|
}
|
||||||
|
|
||||||
|
const result = await db.query(query, [customerNo]);
|
||||||
|
return result.rows[0]['tnc_flag'];
|
||||||
|
}
|
||||||
|
|
||||||
|
async function setTncFlag(customerNo, clientType, flag) {
|
||||||
|
let query = '';
|
||||||
|
if (clientType === 'MB') {
|
||||||
|
query = 'UPDATE users SET tnc_mobile = $1 WHERE customer_no = $2';
|
||||||
|
} else if (clientType === 'IB') {
|
||||||
|
query = 'UPDATE users SET tnc_inb = $1 WHERE customer_no = $2';
|
||||||
|
} else {
|
||||||
|
throw new Error('UNKNOWN_CLIENT_TYPE. ONLY IB AND MB ALLOWED');
|
||||||
|
}
|
||||||
|
await db.query(query, [flag, customerNo]);
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
validateUser,
|
validateUser,
|
||||||
findUserByCustomerNo,
|
findUserByCustomerNo,
|
||||||
@@ -180,5 +206,6 @@ module.exports = {
|
|||||||
isMigratedUser,
|
isMigratedUser,
|
||||||
CheckUserName,
|
CheckUserName,
|
||||||
setUserName,
|
setUserName,
|
||||||
|
getTncFlag,
|
||||||
|
setTncFlag,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user