Commit 5a173671e4cd14c781952fd413b366d1d1288c3a
1 parent
f1040c3ff7
Exists in
master
penanganan invalid xml
Showing 1 changed file with 32 additions and 2 deletions Side-by-side Diff
partner-trugee.js
... | ... | @@ -109,8 +109,15 @@ function directResponseHandler(body, request_id) { |
109 | 109 | var response_code = '68'; |
110 | 110 | |
111 | 111 | //var request_id = result.pulsamatic.partner_trxid[0].trim(); |
112 | - var message = result.pulsamatic.message[0].trim(); | |
113 | - var status = result.pulsamatic.result[0].trim(); | |
112 | + var message = getMessageFromXmlResponse(result); | |
113 | + if (!message) { | |
114 | + message = body; | |
115 | + } | |
116 | + | |
117 | + var status = getStatusFromXmlResponse(result); | |
118 | + if (!status) { | |
119 | + status = 'UNKNOWN'; | |
120 | + } | |
114 | 121 | |
115 | 122 | if (status === 'failed') { |
116 | 123 | response_code = '40'; |
... | ... | @@ -126,6 +133,29 @@ function directResponseHandler(body, request_id) { |
126 | 133 | }); |
127 | 134 | } |
128 | 135 | |
136 | +function getMessageFromXmlResponse(response) { | |
137 | + var message = null; | |
138 | + try { | |
139 | + message = response.pulsamatic.message[0].trim(); | |
140 | + } | |
141 | + catch(e) { | |
142 | + logger.warn('Undefined message from response', {response: response}); | |
143 | + } | |
144 | + return message; | |
145 | +} | |
146 | + | |
147 | +function getStatusFromXmlResponse(response) { | |
148 | + var status = null; | |
149 | + try { | |
150 | + status = response.pulsamatic.result[0].trim(); | |
151 | + } | |
152 | + catch(e) { | |
153 | + logger.warn('Undefined status from response', {response: response}); | |
154 | + } | |
155 | + return message; | |
156 | +} | |
157 | + | |
158 | + | |
129 | 159 | function responseCodeFromMessage(message) { |
130 | 160 | if (message.indexOf('Jenis produk tidak cocok') >= 0) { |
131 | 161 | return '14'; |