In case of fault response, store the fault and don't process any new task until fault is cleared.

This commit is contained in:
Zaid Abdulla committed 2013-01-16 15:30:48 +03:00
1 parent d739adc32c
commit 60bda6921a
3 files changed
+50 -10

No files matched your search

+19 -1
View File
@@ -116,6 +116,23 @@ setParameterValuesResponse = (xml) ->
return JSON.parse(e.text())
return undefined
fault = (xml) ->
f = xml.get('//soap-env:Envelope/soap-env:Body/soap-env:Fault', NAMESPACES)
if f
traverse = (el) ->
children = el.childNodes()
obj = {}
for n in el.childNodes()
if n.type() == 'element'
obj[n.name()] = traverse(n)
if Object.keys(obj).length == 0
return el.text()
else
return obj
return traverse(f)
return undefined
exports.request = (request) ->
req = {cookies: {}}
@@ -140,6 +157,7 @@ exports.request = (request) ->
req.getParameterNamesResponse = getParameterNamesResponse xml
req.getParameterValuesResponse = getParameterValuesResponse xml
req.setParameterValuesResponse = setParameterValuesResponse xml
req.fault = fault xml
return req
@@ -157,7 +175,7 @@ exports.response = (sessionId, params, cookies = null) ->
#console.log '>>> EMPTY RESPONSE'
# send empty response
headers['Content-Length'] = 0
return {code: 204, headers: headers, data: null}
return {code: 204, headers: headers, data: ''}
xml = libxmljs.Document()
env = xml.node('soap-env:Envelope')