let bankValid = async (req, res) => {
try{
if(autoPass == 'Y'){
log.debug('autoPass', autoPass);
return res.send({success: true, result: 'P', comment: ''});
}
log.debug('[Bank] Start check bank-valid', req.body);
let {ApplicationId, BankNo, AccNo, AccountName, AccType = 0 } = req.body;
const channelConfig = {
params: 'CHANNELTYPE',
table_name: 'APP_PROCESS',
cond_keyword: 'APPLICATIONID',
cond_value: ApplicationId
};
const channelInfo = await customerModel.selectWTable(channelConfig, connection.lpms);
if (channelInfo && channelInfo.length > 0) {
const channelName = channelInfo[0].CHANNELTYPE;
if (channelName === 'SPL') {
log.debug('[Check bankValid] Auto Pass SPL');
return res.send({success: true, result: 'P', comment: ''});
}
}
if(!ApplicationId || ApplicationId == ''){
log.debug('ApplicationId ', ApplicationId);
return res.send({
success: false,
result: null,
comment: 'Invalid application id'
});
}
if(![0,1,'0','1'].includes(AccType)){
log.debug('AccType ', AccType);
return res.send({
success: true,
result: 'D',
comment: 'Lỗi vận hành trong quá trình xác thực tài khoản. Vui lòng liên hệ IT xử lý và thử lại (120)'
});
}
if(!BankNo || BankNo == ''){
log.debug('BankNo ', BankNo);
return res.send({
success: true,
result: 'D',
comment: 'Lỗi vận hành trong quá trình xác thực tài khoản. Vui lòng liên hệ IT xử lý và thử lại (115)'
});
}
if(!AccNo || AccNo.length < 4 || AccNo.length > 22){
log.debug('AccNo ', AccNo);
return res.send({
success: true,
result: 'D',
comment: 'Số tài khoản bắt buộc có độ dài từ 4-22 ký tự'
});
}
if(!AccountName || AccountName == ''){
log.debug('AccountName ', AccountName);
return res.send({
success: true,
result: 'D',
comment: 'Lỗi vận hành trong quá trình xác thực tài khoản. Vui lòng liên hệ IT xử lý và thử lại (134)'
});
}
// check bank exist
const bankConfigJson = fs.readFileSync(`${directoryPath}/bankConfig.json`);
const bank = JSON.parse(bankConfigJson);
let bankList = bank['BANK_LIST'];
let existInBankList = bankList.find(ele => { return ele.BANK_NO === BankNo.trim()});
if(!existInBankList){
return res.send({
success: true,
result: 'D',
comment: 'Lỗi vận hành trong quá trình xác thực tài khoản. Vui lòng liên hệ IT xử lý và thử lại (116)'
});
}
let checkName = await helper.containsSpecialChars(AccountName, /[']/);
let out = await service.bankValidationOTM(ApplicationId, BankNo, AccNo, AccountName, AccType, checkName ? 2 : 1);
log.debug('Bank validation - out', out);
if(out.success){
if(out.result == 'P' || out.result == 'R'){
if(out.result == 'R'){
await commonModels.insertRiskRulesLogs(ApplicationId, null, RISK_MESSAGE['700']['data']['701']);
}
return res.send({success: true, result: out.result, comment: out.result == 'R' ? 'UND:-SEPERATOR-Risk:' + RISK_MESSAGE['700']['data']['701']['sale_message'] : ''});
}else{
return res.send({success: true, result: out.result, comment: out.message});
}
}else{
log.debug('Bank validation - error', out.message);
return res.send({
success: false,
result: null,
comment: out.message
});
}
}catch(error){
log.error('Error bank valid - error', req.body, error);
return res.send({
success: false,
result: null,
comment: error.hasOwnProperty('message') ? error.message : error
});
}
}