diff --git a/partner-komodo.js b/partner-komodo.js index 474c0bc..5c7118b 100644 --- a/partner-komodo.js +++ b/partner-komodo.js @@ -2,6 +2,7 @@ process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; +const url = require('url'); const request = require('request'); const resendDelay = require('sate24/resend-delay') @@ -101,28 +102,40 @@ function topupRequest(task, pendingOnConnectError) { } let result = parsePartnerMessage(body); - if (!result) { + processPartnerResponse(result); + + }) +} + +function topupAdvice(task) { + topupRequest(task, true); +} + +function processPartnerResponse(resObj, task) { + if (!resObj) { + + if (task.requestId) { callbackReport(task.requestId, '40', 'Error parsing response from partner. Partner response: ' + body); - return; + } + else { + logger.warn('UNDEFINED REQUEST ID'); } - let st24Rc = '68'; + return; + } - if (komodoRc[result.rc]) { - st24Rc = komodoRc[result.rc]; - } + let st24Rc = '68'; - let st24Message = result.message; - if (result.sn) { - st24Message = 'SN=' + result.sn + '; ' + st24Message; - } + if (komodoRc[resObj.rc]) { + st24Rc = komodoRc[resObj.rc]; + } - callbackReport(task.requestId, st24Rc, st24Message); - }) -} + let st24Message = resObj.message; + if (resObj.sn) { + st24Message = 'SN=' + resObj.sn + '; ' + st24Message; + } -function topupAdvice(task) { - topupRequest(task, true); + callbackReport(resObj.request_id, st24Rc, st24Message); } function parsePartnerMessage(partner_message) { @@ -138,6 +151,22 @@ function parsePartnerMessage(partner_message) { return result; } +function createReverseHttpServer() { + let listenPort = config.h2h_out.listen_port; + + http.createServer(onReverseReport).listen(listenPort, function() { + logger.info('HTTP Reverse/Report server listen on port ' + listenPort); + }); +} + +function onReverseReport(request, response) { + response.end('OK'); + + const qs = url.parse(request.url, true).query; + logger.verbose('Got reverse report from partner', {qs: qs}); + processPartnerResponse(qs); +} + exports.start = start; exports.topupRequest = topupRequest;