From 96e4677f6e00cb0bdb4ff4a9d97efb72e6489929 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <gua@adhisimon.org> Date: Mon, 9 May 2016 13:30:01 +0700 Subject: [PATCH] put last rc, messsage refnum to mongo --- partner-cjk.js | 42 +++++++++++++++++++++++++++--------------- test.js | 4 ++-- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/partner-cjk.js b/partner-cjk.js index c9efffe..9846059 100644 --- a/partner-cjk.js +++ b/partner-cjk.js @@ -108,9 +108,25 @@ function pushResponseToMongoDb(task, response) { if (!isMongoReady()) { return; } try { + var rc = null; + var message = null; + var refnum = null; + + if (response.parsed) { + if (response.parsed.rc) { rc = response.parsed.rc; }; + if (response.parsed.message) { message = response.parsed.message; }; + if (response.parsed.refnum) { refnum = response.parsed.refnum; }; + } + mongodb.collection(config.mongodb.collection).updateOne( {requestId: task.requestId}, - {$push: {responses: response}}, + { + rc: rc, + message: message, + refnum: refnum, + + $push: {responses: response} + }, function(err, result) { if (err) { logger.warn('Error when pushing response to mongodb', {err: err, task: task, response: response}); @@ -135,11 +151,12 @@ function isMongoReady() { function getSNFromMessage(message) { try { var sn_match = message.match(/SN: (\w+)/); - logger.verbose('Got SN: ' + sn_match[1]); return sn_match[1].trim(); } catch(err) { - logger.verbose('Exception on getting sn from message', {err: err}); + if (logger) { + logger.verbose('Exception on getting sn from message', {err: err}); + } return ''; } } @@ -199,16 +216,6 @@ function topupResponseHandler(body, task) { var rc = '68'; var message = result.ciwaru.msg[0]; - /* - var trxid = 0; - try { - trxid = result.ciwaru.reqnum[0]; - } - catch(err) { - trxid = result.ciwaru.trxid[0]; - } - */ - if (message.toUpperCase().indexOf('PENDING') >= 0) { rc = '68'; } @@ -306,10 +313,15 @@ function topupRequest(task, retry) { logger.verbose('Status code: ' + res.statusCode ); var buffer = ""; - res.on( "data", function( data ) { buffer = buffer + data; } ); + + res.on( "data", function( data ) { + buffer = buffer + data; + }); + res.on( "end", function( data ) { - topupResponseHandler(buffer, task); + topupResponseHandler(buffer, task); }); + }); req.on('error', function(e) { diff --git a/test.js b/test.js index dc95c0f..d694bfe 100644 --- a/test.js +++ b/test.js @@ -26,8 +26,8 @@ describe("#partner-cjk", function() { describe('#getSNFromMessage', function() { it('should return correct sn', function() { - var message = '2016-05-04 10:15:50: SUKSES Topup Ke 081905851012 Sebesar 5.000 Dengan SN: 100008530070 Harga = 5.612. Saldo = 475.972'; - partner.getSNFromMessage(message).should.equal('100008530070'); + var message = '2016-05-09 13:26:29: SUKSES Topup Ke 087884428889 Sebesar 50.000 Dengan SN: 55000509134656 Harga = 48.750. Saldo = 104.418.989'; + partner.getSNFromMessage(message).should.equal('55000509134656'); }); }); }); -- 1.9.0