Compare View
Commits (4)
Changes
Showing 2 changed files Side-by-side Diff
center/messaging/trx-center.js
... | ... | @@ -20,19 +20,19 @@ function onOnline(params) { |
20 | 20 | |
21 | 21 | } |
22 | 22 | |
23 | -function onIncomingMessage(paramsFromTransport) { | |
23 | +function onIncomingMessage(paramsFromTransport, cb) { | |
24 | 24 | logger.verbose('Reporting message to CORE') |
25 | 25 | |
26 | 26 | const command = paramsFromTransport.msg.split(/[\., ]+/)[0].toUpperCase(); |
27 | 27 | |
28 | 28 | if (config.commands && config.commands.balance.indexOf(command) >= 0) { |
29 | - executeBalanceCheck(paramsFromTransport); | |
29 | + executeBalanceCheck(paramsFromTransport, cb); | |
30 | 30 | } |
31 | 31 | else if (config.commands && config.commands.price.indexOf(command) >= 0) { |
32 | - executePriceCheck(paramsFromTransport); | |
32 | + executePriceCheck(paramsFromTransport, cb); | |
33 | 33 | } |
34 | 34 | else { |
35 | - executePrepaidBuy(paramsFromTransport); | |
35 | + executePrepaidBuy(paramsFromTransport, cb); | |
36 | 36 | } |
37 | 37 | } |
38 | 38 | |
... | ... | @@ -81,7 +81,7 @@ function generateRequestId(req) { |
81 | 81 | return 'AUTO_' + req.product_name + '_' + req.destination + '_' + strftime('%Y%m%d'); |
82 | 82 | } |
83 | 83 | |
84 | -function executePrepaidBuy(paramsFromTransport) { | |
84 | +function executePrepaidBuy(paramsFromTransport, cb) { | |
85 | 85 | let tokens = paramsFromTransport.msg.trim().split(/[\., ]+/); |
86 | 86 | |
87 | 87 | let qs = { |
... | ... | @@ -107,26 +107,31 @@ function executePrepaidBuy(paramsFromTransport) { |
107 | 107 | qs: qs |
108 | 108 | } |
109 | 109 | |
110 | - requestToCore(requestOptions); | |
110 | + requestToCore(requestOptions, cb); | |
111 | 111 | } |
112 | 112 | |
113 | -function requestToCore(requestOptions, partner) { | |
113 | +function requestToCore(requestOptions, cb) { | |
114 | 114 | logger.verbose('Requesting service to CORE', requestOptions); |
115 | 115 | |
116 | 116 | request(requestOptions, function(err, res, body) { |
117 | 117 | if (err || res.statusCode != 200) { |
118 | 118 | logger.warn('Error requesting to CORE', {module_name: module_name, method_name: 'requestToCore', requestOptions: requestOptions, err: err}); |
119 | 119 | transport.send(requestOptions.qs.terminal_name, 'INTERNAL ERROR'); |
120 | + if (cb) { cb(null, {msg: 'INTERNAL ERROR'}); } | |
120 | 121 | return; |
121 | 122 | } |
122 | 123 | |
123 | 124 | let result = parseCoreMessage(body); |
124 | 125 | if (!result || !result.message) { |
125 | 126 | transport.send(requestOptions.qs.terminal_name, 'INTERNAL ERROR'); |
127 | + if (cb) { cb(null, {msg: 'INTERNAL ERROR'}); } | |
126 | 128 | return; |
127 | 129 | } |
128 | 130 | |
129 | 131 | transport.send(requestOptions.qs.terminal_name, result.message); |
132 | + if (cb) { | |
133 | + cb(null, result); | |
134 | + } | |
130 | 135 | }) |
131 | 136 | } |
132 | 137 |