diff --git a/lib/partner.js b/lib/partner.js index f46d683..aadadf1 100644 --- a/lib/partner.js +++ b/lib/partner.js @@ -18,21 +18,18 @@ if (config.partner.use_sslv3) { https.globalAgent.options.secureProtocol = 'SSLv3_method'; } -function buy(task) { - const partnerUrl = url.parse(config.partner.url); +function createXmlRpcClient(endpoint) { + const partnerUrl = url.parse(endpoint); const clientOptions = { host: partnerUrl.hostname, port: partnerUrl.port, path: partnerUrl.pathname }; - let client; - if (partnerUrl.protocol == 'https:') { - client = xmlrpc.createSecureClient(clientOptions); - } else { - client = xmlrpc.createClient(clientOptions); - } + return partnerUrl.protocol === 'https' ? xmlrpc.createSecureClient(clientOptions) : xmlrpc.createClient(clientOptions); +} +function buy(task) { const params = { MSISDN: config.partner.msisdn || config.partner.userid, REQUESTID: task.trx_id, @@ -42,8 +39,9 @@ function buy(task) { }; const xmlrpcMethod = 'topUpRequest'; - logger.info('Preparing XMLRPC request', {method: xmlrpcMethod, params: params, partnerUrl: partnerUrl.href}); + logger.info('Preparing XMLRPC request', {method: xmlrpcMethod, params: params, partnerUrl: config.partner.url}); + const client = createXmlRpcClient(config.partner.url); client.methodCall(xmlrpcMethod, [ params ], function (err, value) { if (err) { @@ -91,20 +89,6 @@ function buy(task) { } function advice(task) { - const partnerUrl = url.parse(config.partner.url); - const clientOptions = { - host: partnerUrl.hostname, - port: partnerUrl.port, - path: partnerUrl.pathname - }; - - let client; - if (partnerUrl.protocol == 'https:') { - client = xmlrpc.createSecureClient(clientOptions); - } else { - client = xmlrpc.createClient(clientOptions); - } - const params = { REQUESTID: task.trx_id, MSISDN: config.partner.msisdn || config.partner.userid, @@ -113,8 +97,9 @@ function advice(task) { }; const xmlrpcMethod = 'topUpInquiry'; - logger.info('Preparing XMLRPC request', {method: xmlrpcMethod, params: params, partnerUrl: partnerUrl.href}); + logger.info('Preparing XMLRPC request', {method: xmlrpcMethod, params: params, partnerUrl: config.partner.url}); + const client = createXmlRpcClient(config.partner.url); client.methodCall(xmlrpcMethod, [ params ], function (err, value) { if (err) { @@ -152,6 +137,10 @@ function advice(task) { } function report(data) { + if (!data) { + return; + } + matrix.last_report_to_core = data; pull.report(data); }