Commit 3f11d99670bb4608ac44dd9ecda36a54e742e031

Authored by Adhidarma Hadiwinoto
1 parent efad397989
Exists in master

sn split

Showing 1 changed file with 28 additions and 4 deletions Side-by-side Diff

... ... @@ -121,6 +121,19 @@ function createRedisClient() {
121 121 redisClient = redis.createClient(config.globals.redis_port, config.globals.redis_host);
122 122 }
123 123  
  124 +function paddingSN(sn, _config) {
  125 +
  126 + if (!_config) {
  127 + _config = config;
  128 + }
  129 +
  130 + if (_config.h2h_out.sn_min_length && (sn.length < Number(_config.h2h_out.sn_min_length))) {
  131 + sn = '0000000000000000' + sn;
  132 + sn = sn.slice(Number(_config.h2h_out.sn_min_length) * -1);
  133 + }
  134 + return sn;
  135 +}
  136 +
124 137 function parseSN(message, _config) {
125 138  
126 139 if (!_config) {
... ... @@ -158,10 +171,7 @@ function parseSN(message, _config) {
158 171 sn = sn.replace(re, '');
159 172 }
160 173  
161   - if (_config.h2h_out.sn_min_length && (sn.length < Number(_config.h2h_out.sn_min_length))) {
162   - sn = '0000000000000000' + sn;
163   - sn = sn.slice(Number(_config.h2h_out.sn_min_length) * -1);
164   - }
  174 + sn = paddingSN(sn, _config);
165 175  
166 176 return sn.trim();
167 177 }
... ... @@ -183,6 +193,20 @@ function createServer() {
183 193 } else {
184 194 logger.warn('Missing SN from query string. Trying to get SN from message');
185 195 sn = parseSN(qs.info);
  196 +
  197 + if (config.h2h_out.sn_split_by_space && config.h2h_out.sn_split_index) {
  198 +
  199 + var sn_pieces = sn.split(' ');
  200 + var sn_indexes config.h2h_out.sn_split_index.split(',');
  201 + var _sn = '';
  202 +
  203 + var id_count = sn_indexes.length;
  204 + for(var i = 0; i < id_count; i++) {
  205 + _sn = _sn + sn_pieces[i];
  206 + }
  207 + _sn = paddingSN(sn, config);
  208 + sn = _sn;
  209 + }
186 210 }
187 211 } else if (qs.topup_status == 'R') {
188 212