From 120c8a3574ea8d8473ca6803937d44adc73ef139 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <me@adhisimon.org> Date: Mon, 17 Oct 2016 15:35:17 +0700 Subject: [PATCH] debugging cekstatus --- cekstatus.js | 72 +++++++++++++++++++++++++++++++++++++---------------------- partner-sc.js | 2 ++ 2 files changed, 47 insertions(+), 27 deletions(-) diff --git a/cekstatus.js b/cekstatus.js index df8c05c..0fc9924 100644 --- a/cekstatus.js +++ b/cekstatus.js @@ -8,15 +8,25 @@ var argv = require('minimist')(process.argv.slice(2), {string: ['requestid', 'de var strftime = require('strftime'); var fs = require('fs'); var ini = require('ini'); +var winston = require('winston'); var config; +var logger = new winston.Logger({ + transports: [ + new (winston.transports.Console)() + ] +}); + +function setLogger(_logger) { + logger = _logger; +} function advice(data, callback) { if (!data.trxid && !data.destination) { - console.log('Webreport advice request without data. Canceling'); + logger.warn('Webreport advice request without data. Canceling', {data: data}); return; } - + if (data.config) { config = data.config; } else { @@ -24,19 +34,19 @@ function advice(data, callback) { config = ini.parse(fs.readFileSync(__dirname + '/config.ini', 'utf-8')); } catch(err) { - console.log('Error loading config file'); + logger.warn('Error loading config file'); return; } } - + login(data, callback); }; function login(data, callback) { var jar = request.jar(); - + var options = { - url: 'http://103.11.75.142:9009/dealer/index.php/admin/login', + url: 'http://103.11.75.142:9009/dealer/index.php/admin/login', jar: jar, followAllRedirects: true, form: { @@ -45,21 +55,21 @@ function login(data, callback) { Submit: 'Login', }, }; - + //console.log('Requesting', options); request.post(options, function(error, httpResponse, body) { if (error) { - console.log('Error retrieving login'); + logger.warn('Error retrieving login', {options: options, error: error, body: body}); return; } - + if (body.search('Incorrect username') >= 0) { - console.log('Salah username / password'); + logger.warn('Salah username / password', {options = options}); return; } getTrxStatusPage(data, jar, callback); - + }); } @@ -79,29 +89,29 @@ function getTrxStatusPage(data, jar, callback) { submit: 'Find', }, }; - + if (data.trxid) { options.form.trxid = data.trxid; } - + if (data.destination) { options.form.destmisdn = data.destination; } - + //console.log(options); request.post(options, function(error, httpResponse, body) { if (error) { - console.log('Error retrieving trx status page'); + logger.warn('Error retrieving trx status page', {data: data, options: options, err: error}); return; } - + body = body.replace(/<\/thead>\s<\/tbody>/, "</thead>\n<tbody>"); - + var document = parse5.parse(body); var xhtml = xmlser.serializeToString(document); var doc = new dom().parseFromString(xhtml); var select = xpath.useNamespaces({"x": "http://www.w3.org/1999/xhtml"}); - + var nodes = select('//x:*[@id="dirlist"]/x:tbody/x:tr/x:td', doc); var status = {}; @@ -119,39 +129,46 @@ function getTrxStatusPage(data, jar, callback) { } } catch(errStatus) { - console.log('Error parsing status'); + logger.warn('Error parsing status', {data: data, status: status}); if (callback) { callback(); } return; } - + status.response = status.response.replace('<td>', ''); status.response = status.response.replace('</td>', ''); status.response = status.response.replace(/\n/g, ''); status.response = status.response.trim(); //status.response_raw = status.response; - + xml2js(status.response, function (err, result) { if (err) { - console.log('Gagal parsing XML', status.response); + logger.warn('Gagal parsing XML', {err: err, status: status, doc: doc}); if (callback) { status.response = {}; callback(status); } return; } - - status.response = result.result; - + + try { + status.response = result.result; + } + catch(e) { + logger.warn('Exception on get status.response', {e: e, result: result}); + } + + + if (!callback) { - console.log(status); + logger.warn('Invalid callback on checkstatus', {status: status}); } else { callback(status); } }); }); - + } if (require.main === module) { @@ -171,4 +188,5 @@ if (require.main === module) { advice(data); } +exports.setLogger = setLogger; exports.advice = advice; diff --git a/partner-sc.js b/partner-sc.js index a523632..f2b8d6b 100644 --- a/partner-sc.js +++ b/partner-sc.js @@ -578,6 +578,8 @@ function start(options) { }); } + cekstatus.setLogger(logger); + createHttpReportServer(); initMongoClient(); } -- 1.9.0