Commit a6019145394941d0460e11811f620e7aeba87121
1 parent
cebcf3152b
Exists in
master
resync with others
Showing 3 changed files with 63 additions and 33 deletions Side-by-side Diff
index.js
1 | -var iniparser = require('iniparser'); | |
2 | -var config = iniparser.parseSync('./config.ini'); | |
1 | +var fs = require('fs'); | |
2 | +var ini = require('ini'); | |
3 | +var expresso = require('sate24-expresso'); | |
3 | 4 | |
4 | -var aaaHost = config.globals.aaa_host; | |
5 | - | |
6 | -HttpServer = require('sate24/httpserver.js'); | |
7 | -var httpServer = HttpServer.start(config); | |
5 | +var config = ini.parse(fs.readFileSync(__dirname + '/config.ini', 'utf-8')); | |
8 | 6 | |
7 | +var logger = require('sate24/logger.js').start(); | |
8 | +var HttpServer = require('sate24/httpserver.js'); | |
9 | 9 | var aaa = require('sate24/aaa.js'); |
10 | 10 | var partner = require('./partner-datacell.js'); |
11 | 11 | |
12 | -partner.start(config, aaa.callbackReport); | |
13 | -aaa.start(config, partner); | |
12 | +var matrix = aaa.prepareMatrix(); | |
13 | + | |
14 | +var options = { | |
15 | + 'aaa': aaa, | |
16 | + 'logger': logger, | |
17 | + 'config': config, | |
18 | + 'matrix': matrix, | |
19 | +} | |
20 | + | |
21 | +var httpServer = HttpServer.start(config, options); | |
22 | + | |
23 | +partner.start(config, aaa.callbackReport, options); | |
24 | +aaa.start(config, partner, options); | |
25 | + | |
26 | +if (config.expresso) { | |
27 | + expresso.start(options); | |
28 | +} |
package.json
... | ... | @@ -19,12 +19,14 @@ |
19 | 19 | "license": "BSD", |
20 | 20 | "dependencies": { |
21 | 21 | "sate24": "git+http://git@gitlab.kodesumber.com/reload97/node-sate24.git", |
22 | - "iniparser": "~1.0.5", | |
23 | 22 | "base64-xor": "~0.10.0", |
24 | 23 | "request": "~2.60.0", |
25 | 24 | "mathjs": "~1.7.1", |
26 | 25 | "xml": "~1.0.0", |
27 | 26 | "xml2js": "~0.4.9", |
28 | - "strftime": "~0.9.2" | |
27 | + "strftime": "~0.9.2", | |
28 | + "ini": "~1.3.4", | |
29 | + "sate24-expresso": "git+http://gitlab.kodesumber.com/reload97/sate24-expresso.git", | |
30 | + "winston": "~2.1.0" | |
29 | 31 | } |
30 | 32 | } |
partner-datacell.js
... | ... | @@ -8,6 +8,8 @@ var xor = require('base64-xor'); |
8 | 8 | var request = require('request'); |
9 | 9 | |
10 | 10 | var config; |
11 | +var logger; | |
12 | +var aaa; | |
11 | 13 | var callbackReport; |
12 | 14 | |
13 | 15 | var max_retry = 2; |
... | ... | @@ -46,7 +48,7 @@ function createPayload(task) { |
46 | 48 | ] |
47 | 49 | }; |
48 | 50 | |
49 | - console.log(payload); | |
51 | + logger.info('Creating payload', {payload: payload}); | |
50 | 52 | return "<?xml version=\"1.0\" ?>\n" + xml(payload); |
51 | 53 | } |
52 | 54 | |
... | ... | @@ -70,7 +72,7 @@ function topupRequest(task, retry) { |
70 | 72 | var buffer = ""; |
71 | 73 | var req = http.request( postRequest, function( res ) { |
72 | 74 | |
73 | - console.log('Status code: ' + res.statusCode ); | |
75 | + logger.info('Status code: ' + res.statusCode ); | |
74 | 76 | var buffer = ""; |
75 | 77 | res.on( "data", function( data ) { buffer = buffer + data; } ); |
76 | 78 | res.on( "end", function( data ) { |
... | ... | @@ -80,7 +82,7 @@ function topupRequest(task, retry) { |
80 | 82 | }); |
81 | 83 | |
82 | 84 | req.on('error', function(e) { |
83 | - console.log('problem with request: ' + e.message); | |
85 | + logger.warn('problem with request: ' + e.message); | |
84 | 86 | callbackReport(task['requestId'], '40', e.message); |
85 | 87 | }); |
86 | 88 | |
... | ... | @@ -91,12 +93,12 @@ function topupRequest(task, retry) { |
91 | 93 | function topupResponseHandler(body, request_id) { |
92 | 94 | xml2js(body, function (err, result) { |
93 | 95 | if (err) { |
94 | - console.log(body); | |
96 | + logger.warn('topupResponseHandler', {body: body}); | |
95 | 97 | callbackReport(request_id, '40', buffer); |
96 | 98 | return; |
97 | 99 | } |
98 | 100 | |
99 | - console.log(result); | |
101 | + logger.info('topupResponseHandler', {result: result}); | |
100 | 102 | |
101 | 103 | request_id = result.datacell.ref_trxid[0].trim(); |
102 | 104 | |
... | ... | @@ -130,7 +132,7 @@ function topupResponseHandler(body, request_id) { |
130 | 132 | response_code = '00'; |
131 | 133 | |
132 | 134 | var sn = parseSN(message); |
133 | - console.log ('SN Operator: ' + sn); | |
135 | + logger.info('SN Operator: ' + sn); | |
134 | 136 | |
135 | 137 | /* |
136 | 138 | if (!sn) { |
... | ... | @@ -156,23 +158,23 @@ function topupResponseHandler(body, request_id) { |
156 | 158 | |
157 | 159 | var price = priceFromMessage(message); |
158 | 160 | if (price != null) { |
159 | - console.log('Harga: ' + price); | |
161 | + logger.info('Harga: ' + price); | |
160 | 162 | trx_prices[request_id] = price; |
161 | 163 | setTimeout(deleteTrxPrice, 3 * 24 * 3600 * 1000, request_id); |
162 | 164 | } else if (response_code == '00' && trx_prices[request_id] !== undefined) { |
163 | 165 | price = trx_prices[request_id]; |
164 | - console.log('Harga: ' + price); | |
166 | + logger.info('Harga: ' + price); | |
165 | 167 | message = message + ' -- Harga: ' + price; |
166 | 168 | } |
167 | 169 | |
168 | 170 | var balance = balanceFromMessage(message); |
169 | 171 | if (balance != null) { |
170 | - console.log('Saldo: ' + balance); | |
172 | + logger.info('Saldo: ' + balance); | |
171 | 173 | trx_balances[request_id] = balance; |
172 | 174 | setTimeout(deleteTrxBalance, 3 * 24 * 3600 * 1000, request_id); |
173 | 175 | } else if (response_code == '00' && trx_balances[request_id] !== undefined) { |
174 | 176 | balance = trx_balances[request_id]; |
175 | - console.log('Saldo: ' + balance); | |
177 | + logger.info('Saldo: ' + balance); | |
176 | 178 | message = message + ' -- Saldo: ' + balance; |
177 | 179 | } |
178 | 180 | |
... | ... | @@ -211,7 +213,7 @@ function createServer() { |
211 | 213 | var httpServer = http.createServer(function(req, res) { |
212 | 214 | var parsed_url = url.parse(req.url, true, true); |
213 | 215 | |
214 | - console.log('Got request from partner ("' + req.url + '")'); | |
216 | + logger.info('Got request from partner ("' + req.url + '")'); | |
215 | 217 | |
216 | 218 | var body = ""; |
217 | 219 | req.on('data', function (chunk) { |
... | ... | @@ -225,22 +227,22 @@ function createServer() { |
225 | 227 | //console.log(body); |
226 | 228 | |
227 | 229 | if (parsed_url.pathname == '/sn') { |
228 | - console.log('Reverse report -- SN'); | |
230 | + logger.info('Reverse report -- SN'); | |
229 | 231 | topupResponseHandler(body); |
230 | 232 | |
231 | 233 | } else if (parsed_url.pathname = '/refund') { |
232 | - console.log('Reverse report -- REFUND'); | |
234 | + logger.info('Reverse report -- REFUND'); | |
233 | 235 | callbackReport(parsed_url.query.ref_trxid, '40', parsed_url.query.message); |
234 | 236 | |
235 | 237 | } else { |
236 | - console.log('Reverse report -- UNKNOWN'); | |
237 | - console.log('Ignore unknown request on reverse url'); | |
238 | + logger.info('Reverse report -- UNKNOWN'); | |
239 | + logger.info('Ignore unknown request on reverse url'); | |
238 | 240 | } |
239 | 241 | }); |
240 | 242 | }); |
241 | 243 | |
242 | 244 | httpServer.listen(config.h2h_out.listen_port, function() { |
243 | - console.log('HTTP Reverse/Report server listen on port ' + config.h2h_out.listen_port); | |
245 | + logger.info('HTTP Reverse/Report server listen on port ' + config.h2h_out.listen_port); | |
244 | 246 | }); |
245 | 247 | } |
246 | 248 | |
... | ... | @@ -270,18 +272,17 @@ function balanceCheck() { |
270 | 272 | var buffer = ""; |
271 | 273 | var req = http.request( postRequest, function( res ) { |
272 | 274 | |
273 | - console.log('Status code: ' + res.statusCode ); | |
275 | + logger.info('Status code: ' + res.statusCode ); | |
274 | 276 | var buffer = ""; |
275 | 277 | res.on( "data", function( data ) { buffer = buffer + data; } ); |
276 | 278 | res.on( "end", function( data ) { |
277 | - console.log('CHECK BALANCE RESULT:'); | |
278 | - console.log(buffer); | |
279 | + logger.info('CHECK BALANCE RESULT:' {buffer: buffer}); | |
279 | 280 | }); |
280 | 281 | |
281 | 282 | }); |
282 | 283 | |
283 | 284 | req.on('error', function(e) { |
284 | - console.log('problem with request: ' + e.message); | |
285 | + logger.warn('problem with request: ' + e.message); | |
285 | 286 | }); |
286 | 287 | |
287 | 288 | req.write( payload_xml ); |
... | ... | @@ -317,9 +318,21 @@ function priceFromMessage(message) { |
317 | 318 | |
318 | 319 | function start(_config, _callbackReport) { |
319 | 320 | config = _config; |
320 | - callbackReport = _callbackReport | |
321 | - | |
322 | - createServer(); | |
321 | + callbackReport = _callbackReport; | |
322 | + | |
323 | + if (options && options.aaa) { | |
324 | + aaa = options.aaa; | |
325 | + } | |
326 | + | |
327 | + if (options && options.logger) { | |
328 | + logger = options.logger; | |
329 | + } else { | |
330 | + logger = new winston.Logger({ | |
331 | + transports: [ | |
332 | + new (winston.transports.Console)() | |
333 | + ] | |
334 | + }); | |
335 | + } | |
323 | 336 | } |
324 | 337 | |
325 | 338 | exports.start = start; |