From 5a173671e4cd14c781952fd413b366d1d1288c3a Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <gua@adhisimon.org> Date: Tue, 14 Feb 2017 11:52:06 +0700 Subject: [PATCH] penanganan invalid xml --- partner-trugee.js | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/partner-trugee.js b/partner-trugee.js index 8986f14..316da15 100644 --- a/partner-trugee.js +++ b/partner-trugee.js @@ -109,8 +109,15 @@ function directResponseHandler(body, request_id) { var response_code = '68'; //var request_id = result.pulsamatic.partner_trxid[0].trim(); - var message = result.pulsamatic.message[0].trim(); - var status = result.pulsamatic.result[0].trim(); + var message = getMessageFromXmlResponse(result); + if (!message) { + message = body; + } + + var status = getStatusFromXmlResponse(result); + if (!status) { + status = 'UNKNOWN'; + } if (status === 'failed') { response_code = '40'; @@ -126,6 +133,29 @@ function directResponseHandler(body, request_id) { }); } +function getMessageFromXmlResponse(response) { + var message = null; + try { + message = response.pulsamatic.message[0].trim(); + } + catch(e) { + logger.warn('Undefined message from response', {response: response}); + } + return message; +} + +function getStatusFromXmlResponse(response) { + var status = null; + try { + status = response.pulsamatic.result[0].trim(); + } + catch(e) { + logger.warn('Undefined status from response', {response: response}); + } + return message; +} + + function responseCodeFromMessage(message) { if (message.indexOf('Jenis produk tidak cocok') >= 0) { return '14'; -- 1.9.0