diff --git a/httppulsakita.js b/httppulsakita.js index aa796ce..c67ab02 100644 --- a/httppulsakita.js +++ b/httppulsakita.js @@ -11,6 +11,28 @@ var sleep_before_retry = 3000; process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; +function parseSN(message) { + var sn_regex = new RegExp(config.h2h_out.sn_pattern); + var sn_match = message.match(sn_regex); + + if (sn_match <= 0) { + console.log('SN Not found: ' + message); + return ''; + } + + var sn = sn_match[0]; + var sn_remove_patterns = config.h2h_out.sn_remove_patterns.split(config.h2h_out.sn_remove_patterns_separator); + + var count = sn_remove_patterns.length; + + for(var i = 0; i < count; i++) { + sn = sn.replace(sn_remove_patterns[i], ''); + } + + return sn.trim(); +} + + function topupRequest(task, retry) { if (config.globals.requests_count == undefined) { config.globals.requests_count = 1; @@ -91,15 +113,23 @@ function topupRequest(task, retry) { token = result.respon.token[0]; } - var data_pelanggan = ''; + var data_pelanggan = 'NO-DATA'; if (result.respon.data) { data_pelanggan = result.respon.data[0].replace(/ /g, '-'); } var message = result.respon.pesan[0].replace(/\n/g, ' '); - if (token && data_pelanggan) { - var sn = token + '/' + data_pelanggan; + + if (response_code = '00') { + + var sn = ""; + if (token && data_pelanggan) { + sn = token + '/' + data_pelanggan; + + } else if (config.h2h_out.parse_sn == 'YES') { + sn = parseSN(message); + } message = 'SN=' + sn + '; ' + message; }