Skip to content

Commit

Permalink
feat: expose outcome service response parser
Browse files Browse the repository at this point in the history
  • Loading branch information
dinoboff committed Aug 24, 2017
1 parent b9e6634 commit 2347d2e
Showing 1 changed file with 19 additions and 12 deletions.
31 changes: 19 additions & 12 deletions src/extensions/outcomes.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,22 @@ navigateXml = (xmlObject, path) ->
return xmlObject


parseResponse = (body, callback) ->
xml2js.parseString body, trim: true, (err, result) =>
if err?
callback new errors.OutcomeResponseError('The server responsed with an invalid XML document'), false
return

response = result?.imsx_POXEnvelopeResponse
code = navigateXml response, 'imsx_POXHeader.imsx_POXResponseHeaderInfo.imsx_statusInfo.imsx_codeMajor'

if code != 'success'
msg = navigateXml response, 'imsx_POXHeader.imsx_POXResponseHeaderInfo.imsx_statusInfo.imsx_description'
callback new errors.OutcomeResponseError(msg), false
else
callback null, true, response



class OutcomeDocument

Expand Down Expand Up @@ -234,18 +250,8 @@ class OutcomeService


_process_response: (body, callback) ->
xml2js.parseString body, trim: true, (err, result) =>
return callback new errors.OutcomeResponseError('The server responsed with an invalid XML document'), false if err

response = result?.imsx_POXEnvelopeResponse
code = navigateXml response, 'imsx_POXHeader.imsx_POXResponseHeaderInfo.imsx_statusInfo.imsx_codeMajor'

if code != 'success'
msg = navigateXml response, 'imsx_POXHeader.imsx_POXResponseHeaderInfo.imsx_statusInfo.imsx_description'
callback new errors.OutcomeResponseError(msg), false
else
callback null, true, response

# deprecated
parseResponse(body, callback)


exports.init = (provider) ->
Expand All @@ -266,3 +272,4 @@ exports.init = (provider) ->

exports.OutcomeDocument = OutcomeDocument
exports.OutcomeService = OutcomeService
exports.parseResponse = parseResponse

0 comments on commit 2347d2e

Please sign in to comment.