Commit a6019145394941d0460e11811f620e7aeba87121

Authored by Adhidarma Hadiwinoto
1 parent cebcf3152b
Exists in master

resync with others

Showing 3 changed files with 63 additions and 33 deletions Side-by-side Diff

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 +}
... ... @@ -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 }
... ... @@ -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;