diff --git a/xmlout.js b/xmlout.js index e8dad06..1966f69 100644 --- a/xmlout.js +++ b/xmlout.js @@ -127,12 +127,7 @@ function _topupRequest(task, pendingOnConnectError) { value['RESPONSECODE'] = '68'; } - if (value['RESPONSECODE'] == '00' && value['SN'] && value['SN'].trim()) { - value['MESSAGE'] = 'SN=' + value['SN'].trim() + '; ' + value['MESSAGE']; - } - else if (value['RESPONSECODE'] == '00' && config.h2h_out.parse_sn == 'YES') { - value['MESSAGE'] = 'SN=' + parseSN(value['MESSAGE']) + '; ' + value['MESSAGE']; - } + value['MESSAGE'] = prefixMessageWithSN(value); callbackReport( task.requestId, value['RESPONSECODE'], value['MESSAGE'], null, JSON.stringify({methodName: methodName, response: value}) @@ -140,6 +135,24 @@ function _topupRequest(task, pendingOnConnectError) { }); } +function prefixMessageWithSN(data) { + + if (data['RESPONSECODE'] != '00') { + return data['MESSAGE']; + } + + if (data['MESSAGE'].search(/^SN=.+;/) == -1) { + if (data['SN'] && data['SN'].trim()) { + return 'SN=' + data['SN'].trim() + '; ' + data['MESSAGE']; + } + else if (config.h2h_out.parse_sn == 'YES') { + return = 'SN=' + parseSN(data['MESSAGE']) + '; ' + data['MESSAGE']; + } + } + + return data['MESSAGE']; +} + function createServer() { logger.info('Creating XML-RPC server on port ' + config.h2h_out.listen_port); @@ -166,9 +179,7 @@ function createServer() { value['RESPONSECODE'] = '68'; } - if (value['RESPONSECODE'] == '00' && config.h2h_out.parse_sn == 'YES') { - value['MESSAGE'] = 'SN=' + parseSN(value['MESSAGE']) + '; ' + value['MESSAGE']; - } + value['MESSAGE'] = prefixMessageWithSN(value); callbackReport( value['REQUESTID'], value['RESPONSECODE'], value['MESSAGE'], null, JSON.stringify({methodName: 'topUpReport', msg: value})