Commit 1f196f6de5e79a4061a4fa549c55710c9d9ad389
1 parent
f673862b49
Exists in
master
reverse result
Showing 1 changed file with 44 additions and 15 deletions Side-by-side Diff
partner-komodo.js
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | |
3 | 3 | process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; |
4 | 4 | |
5 | +const url = require('url'); | |
5 | 6 | const request = require('request'); |
6 | 7 | const resendDelay = require('sate24/resend-delay') |
7 | 8 | |
... | ... | @@ -101,28 +102,40 @@ function topupRequest(task, pendingOnConnectError) { |
101 | 102 | } |
102 | 103 | |
103 | 104 | let result = parsePartnerMessage(body); |
104 | - if (!result) { | |
105 | + processPartnerResponse(result); | |
106 | + | |
107 | + }) | |
108 | +} | |
109 | + | |
110 | +function topupAdvice(task) { | |
111 | + topupRequest(task, true); | |
112 | +} | |
113 | + | |
114 | +function processPartnerResponse(resObj, task) { | |
115 | + if (!resObj) { | |
116 | + | |
117 | + if (task.requestId) { | |
105 | 118 | callbackReport(task.requestId, '40', 'Error parsing response from partner. Partner response: ' + body); |
106 | - return; | |
119 | + } | |
120 | + else { | |
121 | + logger.warn('UNDEFINED REQUEST ID'); | |
107 | 122 | } |
108 | 123 | |
109 | - let st24Rc = '68'; | |
124 | + return; | |
125 | + } | |
110 | 126 | |
111 | - if (komodoRc[result.rc]) { | |
112 | - st24Rc = komodoRc[result.rc]; | |
113 | - } | |
127 | + let st24Rc = '68'; | |
114 | 128 | |
115 | - let st24Message = result.message; | |
116 | - if (result.sn) { | |
117 | - st24Message = 'SN=' + result.sn + '; ' + st24Message; | |
118 | - } | |
129 | + if (komodoRc[resObj.rc]) { | |
130 | + st24Rc = komodoRc[resObj.rc]; | |
131 | + } | |
119 | 132 | |
120 | - callbackReport(task.requestId, st24Rc, st24Message); | |
121 | - }) | |
122 | -} | |
133 | + let st24Message = resObj.message; | |
134 | + if (resObj.sn) { | |
135 | + st24Message = 'SN=' + resObj.sn + '; ' + st24Message; | |
136 | + } | |
123 | 137 | |
124 | -function topupAdvice(task) { | |
125 | - topupRequest(task, true); | |
138 | + callbackReport(resObj.request_id, st24Rc, st24Message); | |
126 | 139 | } |
127 | 140 | |
128 | 141 | function parsePartnerMessage(partner_message) { |
... | ... | @@ -138,6 +151,22 @@ function parsePartnerMessage(partner_message) { |
138 | 151 | return result; |
139 | 152 | } |
140 | 153 | |
154 | +function createReverseHttpServer() { | |
155 | + let listenPort = config.h2h_out.listen_port; | |
156 | + | |
157 | + http.createServer(onReverseReport).listen(listenPort, function() { | |
158 | + logger.info('HTTP Reverse/Report server listen on port ' + listenPort); | |
159 | + }); | |
160 | +} | |
161 | + | |
162 | +function onReverseReport(request, response) { | |
163 | + response.end('OK'); | |
164 | + | |
165 | + const qs = url.parse(request.url, true).query; | |
166 | + logger.verbose('Got reverse report from partner', {qs: qs}); | |
167 | + processPartnerResponse(qs); | |
168 | +} | |
169 | + | |
141 | 170 | |
142 | 171 | exports.start = start; |
143 | 172 | exports.topupRequest = topupRequest; |