From 048de639b42b71282562b6da67ae80cc2984ff13 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <me@adhisimon.org> Date: Tue, 16 Aug 2016 19:23:24 +0700 Subject: [PATCH] coba lebih bersih --- partner-fm.js | 52 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/partner-fm.js b/partner-fm.js index 4ac5464..1335d18 100644 --- a/partner-fm.js +++ b/partner-fm.js @@ -152,33 +152,34 @@ function topupResponseHandler(xmlResponse, _requestId, cb) { logger.info('Response parsed', {data: data}); - try { - msg = data.fm.message[0]; - } - catch(e) { - msg = 'Unknown message' + msg = getMessageFromResponse(data); + if (!msg) { + msg = 'Unknown message'; } - if (data.fm.status[0] == '0') { + var status = getStatusFromResponse(data); + + if (status == '0') { rc = '00'; msg = modifyMessageWithSn(msg); logger.verbose('Modify message on success message', {msg: msg}); - } else if (data.fm.status[0] == '1') { + } else if (status == '1') { rc = '68'; - } else if (data.fm.status[0] == '2') { + } else if (status == '2') { rc = '40'; - } else if (data.fm.status[0] == '3') { + } else if (status == '3') { rc = '40'; } else { rc = '68'; + msg = msg + '. Status is not valid ' + status; } - if (data.fm.refTrxid[0]) { - requestId = data.fm.refTrxid[0]; + var requestIdFromData = getRequestIdFromResponse(data); + if (requestIdFromData) { + requestId = requestIdFromData; } - } cb(requestId, rc, msg, xmlResponse) @@ -217,6 +218,33 @@ function getSnFromMessage(msg) { } } +function getStatusFromResponse(msg) { + try { + return data.fm.status[0]; + } + catch(e) { + return; + } +} + +function getMessageFromResponse(msg) { + try { + return data.fm.message[0]; + } + catch(e) { + return; + } +} + +function getRequestIdFromResponse(msg) { + try { + return data.fm.refTrxid[0]; + } + catch(e) { + return; + } +} + function modifyMessageWithSn(msg) { var sn = getSnFromMessage(msg); -- 1.9.0