From a12a4d7452caa074de4e9f0d26f04cbbccda2361 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <gua@adhisimon.org> Date: Wed, 22 Jul 2015 17:47:39 +0700 Subject: [PATCH] merge direct dan undirect response --- partner-datacell.js | 57 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/partner-datacell.js b/partner-datacell.js index 5dfdb40..cc1d76c 100644 --- a/partner-datacell.js +++ b/partner-datacell.js @@ -85,26 +85,8 @@ function topupRequest(task, retry) { console.log('Status code: ' + res.statusCode ); var buffer = ""; res.on( "data", function( data ) { buffer = buffer + data; } ); - res.on( "end", function( data ) { - - xml2js(buffer, function (err, result) { - if (err) { - console.log(buffer); - callbackReport(task['requestId'], '40', buffer); - return; - } - - console.log(result); - - var response_code = '68'; - var message = result.datacell.message[0].trim(); - if (result.datacell.resultcode[0] == '999') { - response_code = '40'; - } - - callbackReport(task['requestId'], response_code, message); - }); - + res.on( "end", function( data ) { + topupResponseHandler(data); }); }); @@ -117,12 +99,37 @@ function topupRequest(task, retry) { req.end(); } +function topupResponseHandler(body, request_id) { + xml2js(body, function (err, result) { + if (err) { + console.log(body); + callbackReport(request_id, '40', buffer); + return; + } + + console.log(result); + + request_id = result.datacell.ref_trxid[0].trim(): + + var response_code = '68'; + var message = result.datacell.message[0].trim(); + + if (result.datacell.resultcode[0] == '999') { + response_code = '40'; + + if (message.indexOf('Nomor tujuan salah') >= 0) { + response_code = '14'; + } + } + + callbackReport(request_id, response_code, message); + }); +} + function createServer() { var httpServer = http.createServer(function(req, res) { - console.log('Got request from partner, url: ' + req.url); - //console.log('REQ:'); - //console.log(req); + console.log('Got request from partner ("' + req.url + '")'); var body = ""; req.on('data', function (chunk) { @@ -130,9 +137,11 @@ function createServer() { }); req.on('end', function () { - console.log('POSTed: ' + body); res.writeHead(200); res.end('OK'); + + console.log(body); + topupResponseHandler(body); }); }); -- 1.9.0