Commit 855827cf6e1c835a1f2c22ef5ee2af4b1088c106
1 parent
57711acc6a
Exists in
master
insertTaskToMongoDb dan callbackReportWithPushToMongoDb
Showing 2 changed files with 139 additions and 125 deletions Side-by-side Diff
index.js
partner-sc.js
... | ... | @@ -27,13 +27,13 @@ var sleep_before_retry = 30000; |
27 | 27 | var logTag = __filename.split('/').reverse()[0]; |
28 | 28 | |
29 | 29 | function initMongoClient() { |
30 | - if (!config.mongodb || !config.mongodb.url) { | |
30 | + if (!config.mongodbstruk || !config.mongodbstruk.url) { | |
31 | 31 | return; |
32 | 32 | } |
33 | - | |
33 | + | |
34 | 34 | try { |
35 | - var url = config.mongodb.url; | |
36 | - | |
35 | + var url = config.mongodbstruk.url; | |
36 | + | |
37 | 37 | mongoClient.connect(url, function(err, db) { |
38 | 38 | if (err) { |
39 | 39 | logger.warn('Failed to connect to mongodb', {err: err}); |
... | ... | @@ -46,112 +46,112 @@ function initMongoClient() { |
46 | 46 | catch(err) { |
47 | 47 | logger.warn('Exception when connecting to mongodb', {err: err, url: url}); |
48 | 48 | } |
49 | - | |
49 | + | |
50 | 50 | } |
51 | 51 | |
52 | 52 | function prepareResultData(result) { |
53 | 53 | var task; |
54 | - | |
54 | + | |
55 | 55 | var data = {}; |
56 | 56 | data.gateway = config.globals.gateway_name; |
57 | - | |
57 | + | |
58 | 58 | try { |
59 | 59 | data.requestId = result.reffid[0].trim(); |
60 | - | |
60 | + | |
61 | 61 | var key = config.globals.gateway_name + '.rid:' + data.requestId; |
62 | 62 | task = tasks.get(key); |
63 | 63 | } |
64 | 64 | catch(err) { data.requestId = null; } |
65 | - | |
65 | + | |
66 | 66 | try { |
67 | 67 | data.status = result.ResultCode[0].trim(); |
68 | 68 | } |
69 | 69 | catch(err) { data.status = '68' } |
70 | - | |
70 | + | |
71 | 71 | try { |
72 | - data.rcmessage = result.ErrorMsg[0].trim(); | |
72 | + data.rcmessage = result.ErrorMsg[0].trim(); | |
73 | 73 | } |
74 | 74 | catch(err) { data.rcmessage = ''; } |
75 | - | |
75 | + | |
76 | 76 | try { |
77 | - data.resptext = ''; | |
77 | + data.resptext = ''; | |
78 | 78 | } |
79 | 79 | catch(err) { data.resptext = ''; } |
80 | - | |
80 | + | |
81 | 81 | try { |
82 | 82 | var ts = moment(task.timestamp, 'YYYYMMDDHHmmss').format('YYYY-MM-DD HH:mm:ss') |
83 | 83 | data.dt = ts; |
84 | 84 | } |
85 | - catch(err) { | |
85 | + catch(err) { | |
86 | 86 | logger.warn('Exception when getting timestamp data, using current timestamp', {err: err, result: result, task: task}); |
87 | - data.dt = strftime('%Y-%m-%d %H:%M:%S', new Date()); | |
87 | + data.dt = strftime('%Y-%m-%d %H:%M:%S', new Date()); | |
88 | 88 | } |
89 | - | |
89 | + | |
90 | 90 | try { |
91 | 91 | data.namapel = result.nama_pel[0].trim(); |
92 | 92 | } |
93 | 93 | catch(err) { data.namapel = 'UNKNOWN'; } |
94 | - | |
94 | + | |
95 | 95 | try { |
96 | 96 | data.msn = result.nsm[0].trim(); |
97 | 97 | } |
98 | 98 | catch(err) { data.msn = 'UNKNOWN'; } |
99 | - | |
99 | + | |
100 | 100 | try { |
101 | 101 | data.idpel = result.idpel[0].trim(); |
102 | 102 | } |
103 | 103 | catch(err) { data.idpel = 'UNKNOWN'; } |
104 | - | |
104 | + | |
105 | 105 | try { |
106 | 106 | data.tarifdaya = result.tarif[0].trim(); |
107 | 107 | } |
108 | 108 | catch(err) { data.tarifdaya = 'UNKNOWN'; } |
109 | - | |
109 | + | |
110 | 110 | try { |
111 | 111 | data.admin = parseInt(result.adminfee[0].trim()); |
112 | 112 | } |
113 | 113 | catch(err) { data.admin = 0; } |
114 | - | |
114 | + | |
115 | 115 | try { |
116 | 116 | data.adm = parseInt(result.admin_fee[0].trim()); |
117 | 117 | } |
118 | 118 | catch(err) { data.adm = 0; } |
119 | - | |
119 | + | |
120 | 120 | try { |
121 | 121 | data.hargapelanggan = parseInt(result.amount_trx[0].trim()); |
122 | 122 | } |
123 | 123 | catch(err) { data.hargapelanggan = 0; } |
124 | - | |
124 | + | |
125 | 125 | try { |
126 | 126 | data.jumlahkwh = result.jml_daya[0].trim(); |
127 | 127 | } |
128 | 128 | catch(err) { data.jumlahkwh = 0; } |
129 | - | |
129 | + | |
130 | 130 | try { |
131 | 131 | data.token = result.token[0].trim(); |
132 | 132 | } |
133 | 133 | catch(err) { data.token = 0; } |
134 | - | |
134 | + | |
135 | 135 | try { |
136 | 136 | data.ppn = result.ppn_fee[0].trim(); |
137 | 137 | } |
138 | 138 | catch(err) { data.ppn_fee = 0; } |
139 | - | |
139 | + | |
140 | 140 | try { |
141 | 141 | data.ppj = result.ppj_fee[0].trim(); |
142 | 142 | } |
143 | 143 | catch(err) { data.ppj = 0; } |
144 | - | |
144 | + | |
145 | 145 | try { |
146 | 146 | data.angsuran = result.angsuran_fee[0].trim(); |
147 | 147 | } |
148 | 148 | catch(err) { data.angsuran = 0; } |
149 | - | |
149 | + | |
150 | 150 | try { |
151 | 151 | data.meterai = result.materai_fee[0].trim(); |
152 | 152 | } |
153 | 153 | catch(err) { data.materai_fee = 0; } |
154 | - | |
154 | + | |
155 | 155 | return data; |
156 | 156 | } |
157 | 157 | |
... | ... | @@ -159,19 +159,19 @@ function saveTokenToMongoDb(result) { |
159 | 159 | if (!mongodb) { |
160 | 160 | return; |
161 | 161 | } |
162 | - | |
163 | - if (!config.mongodb) { | |
162 | + | |
163 | + if (!config.mongodbstruk) { | |
164 | 164 | return; |
165 | 165 | } |
166 | - | |
167 | - if (!config.mongodb.collection) { | |
166 | + | |
167 | + if (!config.mongodbstruk.collection) { | |
168 | 168 | return; |
169 | 169 | } |
170 | - | |
170 | + | |
171 | 171 | data = prepareResultData(result); |
172 | 172 | |
173 | 173 | try { |
174 | - mongodb.collection(config.mongodb.collection).insertOne(data); | |
174 | + mongodb.collection(config.mongodbstruk.collection).insertOne(data); | |
175 | 175 | } |
176 | 176 | catch(err) { |
177 | 177 | logger.warn('Error when inserting data to mongodb', {err: err, data: data}); |
... | ... | @@ -180,7 +180,7 @@ function saveTokenToMongoDb(result) { |
180 | 180 | |
181 | 181 | function putTaskToCache(task) { |
182 | 182 | var key = config.globals.gateway_name + '.rid:' + task.requestId; |
183 | - | |
183 | + | |
184 | 184 | try { |
185 | 185 | tasks.set(key, task); |
186 | 186 | } |
... | ... | @@ -190,16 +190,17 @@ function putTaskToCache(task) { |
190 | 190 | } |
191 | 191 | |
192 | 192 | function topupRequest(task) { |
193 | + aaa.insertTaskToMongoDb(task); | |
193 | 194 | putTaskToCache(task); |
194 | - | |
195 | + | |
195 | 196 | var ts = strftime('%Y%m%d%H%M%S', new Date()); |
196 | - | |
197 | - var data = | |
198 | - config.h2h_out.userid | |
199 | - + '|' + config.h2h_out.password | |
200 | - + '|' + task['remoteProduct'] | |
197 | + | |
198 | + var data = | |
199 | + config.h2h_out.userid | |
200 | + + '|' + config.h2h_out.password | |
201 | + + '|' + task['remoteProduct'] | |
201 | 202 | + '|' + task['destination'] + '|0'; |
202 | - | |
203 | + | |
203 | 204 | var options = { |
204 | 205 | url: config.h2h_out.partner, |
205 | 206 | qs: { |
... | ... | @@ -215,16 +216,16 @@ function topupRequest(task) { |
215 | 216 | var responseMessage = 'Gateway Error'; |
216 | 217 | |
217 | 218 | if (error) { |
218 | - | |
219 | + | |
219 | 220 | logger.warn('HTTP REQUEST ERROR', error); |
220 | 221 | callbackReport(task['requestId'], '89', 'HTTP REQUEST ERROR (' + error + ')'); |
221 | - | |
222 | + | |
222 | 223 | } else if (response.statusCode != 200) { |
223 | - | |
224 | + | |
224 | 225 | var error_message = 'GATEWAY ERROR (HTTP RESPONSE CODE: ' + response.statusCode + ')'; |
225 | 226 | logger.warn(error_message); |
226 | 227 | callbackReport(task['requestId'], '91', error_message); |
227 | - | |
228 | + | |
228 | 229 | } else { |
229 | 230 | |
230 | 231 | logger.info('DIRECT RESPONSE', {body: body}); |
... | ... | @@ -235,9 +236,9 @@ function topupRequest(task) { |
235 | 236 | } else { |
236 | 237 | var directResponse = result; |
237 | 238 | logger.info(directResponse); |
238 | - | |
239 | + | |
239 | 240 | saveTokenToMongoDb(directResponse.Result); |
240 | - | |
241 | + | |
241 | 242 | try { |
242 | 243 | var result_price; |
243 | 244 | try { |
... | ... | @@ -246,7 +247,7 @@ function topupRequest(task) { |
246 | 247 | catch(err) { |
247 | 248 | result_price = 0; |
248 | 249 | } |
249 | - | |
250 | + | |
250 | 251 | var result_error_message; |
251 | 252 | try { |
252 | 253 | result_error_message = directResponse.Result.ErrorMsg[0].trim(); |
... | ... | @@ -254,10 +255,10 @@ function topupRequest(task) { |
254 | 255 | catch(err) { |
255 | 256 | result_error_message = ''; |
256 | 257 | } |
257 | - | |
258 | + | |
258 | 259 | var resultCode = directResponse.Result.ResultCode[0].trim(); |
259 | - | |
260 | - responseMessage = | |
260 | + | |
261 | + responseMessage = | |
261 | 262 | 'ResultCode: ' + resultCode |
262 | 263 | + ' | ErrorMsg: ' + result_error_message |
263 | 264 | + ' | DateTime: ' + directResponse.Result.DateTime[0].trim() |
... | ... | @@ -272,49 +273,49 @@ function topupRequest(task) { |
272 | 273 | + ' | Price: ' + result_price |
273 | 274 | + ' | EndBalance: ' + directResponse.Result.EndBalance[0].trim() |
274 | 275 | ; |
275 | - | |
276 | + | |
276 | 277 | logger.info('Response message: ' + responseMessage); |
277 | - | |
278 | + | |
278 | 279 | if (aaa) { |
279 | 280 | // update balance |
280 | 281 | aaa.updateBalance(directResponse.Result.EndBalance[0]); |
281 | 282 | } |
282 | - | |
283 | + | |
283 | 284 | if (resultCode == '0000') { |
284 | 285 | var nama_pelanggan = directResponse.Result.nama_pel[0].trim(); |
285 | 286 | nama_pelanggan = nama_pelanggan.replace(/-\/-/g, '-'); |
286 | 287 | var sn = directResponse.Result.token[0].trim() + '/' + nama_pelanggan + '/' + directResponse.Result.tarif[0].trim() + 'VA/' + directResponse.Result.jml_daya[0].trim(); |
287 | 288 | sn = sn.replace(/\s/g, '-'); |
288 | - | |
289 | + | |
289 | 290 | responseMessage = 'SN=' + sn + '; ' + responseMessage; |
290 | 291 | logger.info('New response message: ' + responseMessage); |
291 | 292 | } |
292 | - | |
293 | + | |
293 | 294 | var pendingResultCode = ['0005', '0012', '0068', '0090', '0063', '0018', '0096']; |
294 | 295 | if (pendingResultCode.indexOf(resultCode) != -1) { |
295 | 296 | callbackReport(task['requestId'], '68', responseMessage); |
296 | - | |
297 | + | |
297 | 298 | logger.info('Got pending status, requesting advice from webreport in ' + sleep_before_retry + 'ms'); |
298 | 299 | setTimeout(function () { |
299 | 300 | cekstatus.advice({trxid: directResponse.Result.TransID[0].trim()}, callbackFromWebReport); |
300 | 301 | }, sleep_before_retry); |
301 | - | |
302 | + | |
302 | 303 | return; |
303 | 304 | } |
304 | - | |
305 | + | |
305 | 306 | responseCode = resultCode.replace(/^00/, ""); |
306 | - | |
307 | + | |
307 | 308 | if (result_error_message == 'Inq - APLICATION SERVER RESPONSE TIMEOUT') { |
308 | 309 | responseCode = '91'; |
309 | - } | |
310 | - | |
310 | + } | |
311 | + | |
311 | 312 | } |
312 | 313 | catch(err) { |
313 | 314 | responseCode = '40'; |
314 | 315 | responseMessage = 'Invalid response from gateway'; |
315 | 316 | } |
316 | 317 | } |
317 | - | |
318 | + | |
318 | 319 | callbackReport(task['requestId'], responseCode, responseMessage); |
319 | 320 | }); |
320 | 321 | } |
... | ... | @@ -328,181 +329,181 @@ function callbackFromWebReport(status) { |
328 | 329 | logger.warn('Advice from webreport return empty status'); |
329 | 330 | return; |
330 | 331 | } |
331 | - | |
332 | + | |
332 | 333 | logger.info('Got advice result from webreport', {status: status}); |
333 | - | |
334 | + | |
334 | 335 | var responseCode = '68'; |
335 | - | |
336 | + | |
336 | 337 | var result_price = 0; |
337 | 338 | try { |
338 | 339 | result_price = directResponse.Result.Price[0].trim(); |
339 | 340 | } |
340 | 341 | catch(err) {} |
341 | - | |
342 | + | |
342 | 343 | var errorMsg = ''; |
343 | 344 | try { |
344 | 345 | errorMsg = status.response.errormsg[0]; |
345 | 346 | } |
346 | 347 | catch(err) {} |
347 | - | |
348 | + | |
348 | 349 | var responseMessage = ''; |
349 | 350 | try { |
350 | - responseMessage = | |
351 | + responseMessage = | |
351 | 352 | 'Hasil advice dari webreport ' |
352 | 353 | + 'ResultCode: ' + status.response.resultcode[0] |
353 | 354 | } |
354 | 355 | catch(err) { |
355 | 356 | logger.warn('Error parsing ResultCode from webreport advice.', {err: err}); |
356 | 357 | } |
357 | - | |
358 | + | |
358 | 359 | try { |
359 | - responseMessage = | |
360 | + responseMessage = | |
360 | 361 | responseMessage |
361 | 362 | + ' | ErrorMsg: ' + errorMsg |
362 | 363 | } |
363 | 364 | catch(err) { |
364 | 365 | logger.warn('Error parsing ErrorMsg from webreport advice.', {err: err}); |
365 | 366 | } |
366 | - | |
367 | + | |
367 | 368 | try { |
368 | - responseMessage = | |
369 | + responseMessage = | |
369 | 370 | responseMessage |
370 | 371 | + ' | TrxDate: ' + status.trxDate; |
371 | 372 | } |
372 | 373 | catch(err) { |
373 | 374 | logger.warn('Error parsing TrxDate from webreport advice.', {err: err}); |
374 | 375 | } |
375 | - | |
376 | + | |
376 | 377 | try { |
377 | - responseMessage = | |
378 | + responseMessage = | |
378 | 379 | responseMessage |
379 | 380 | + ' | UpdateDate: ' + status.updateDate; |
380 | - | |
381 | + | |
381 | 382 | } |
382 | 383 | catch(err) { |
383 | 384 | logger.warn('Error parsing UpdateDate from webreport advice.', {err: err}); |
384 | 385 | } |
385 | - | |
386 | + | |
386 | 387 | try { |
387 | - responseMessage = | |
388 | + responseMessage = | |
388 | 389 | responseMessage |
389 | 390 | + ' | nsm: ' + status.response.nsm[0]; |
390 | 391 | } |
391 | 392 | catch(err) { |
392 | 393 | logger.warn('Error parsing nsm from webreport advice.', {err: err}); |
393 | 394 | } |
394 | - | |
395 | + | |
395 | 396 | try { |
396 | - responseMessage = | |
397 | + responseMessage = | |
397 | 398 | responseMessage |
398 | 399 | + ' | idpel: ' + status.response.idpel[0]; |
399 | 400 | } |
400 | 401 | catch(err) { |
401 | 402 | logger.warn('Error parsing idpel from webreport advice.', {err: err}); |
402 | 403 | } |
403 | - | |
404 | + | |
404 | 405 | try { |
405 | - responseMessage = | |
406 | + responseMessage = | |
406 | 407 | responseMessage |
407 | 408 | + ' | reffid: ' + status.response.reffid[0].trim(); |
408 | 409 | } |
409 | 410 | catch(err) { |
410 | 411 | logger.warn('Error parsing reffid from webreport advice.', {err: err}); |
411 | 412 | } |
412 | - | |
413 | + | |
413 | 414 | try { |
414 | - responseMessage = | |
415 | + responseMessage = | |
415 | 416 | responseMessage |
416 | 417 | + ' | TransID: ' + status.response.transid[0].trim(); |
417 | 418 | } |
418 | 419 | catch(err) { |
419 | 420 | logger.warn('Error parsing TransID from webreport advice.', {err: err}); |
420 | 421 | } |
421 | - | |
422 | + | |
422 | 423 | try { |
423 | - responseMessage = | |
424 | + responseMessage = | |
424 | 425 | responseMessage |
425 | 426 | + ' | reff_switching: ' + status.response.reff_switching[0]; |
426 | 427 | } |
427 | 428 | catch(err) { |
428 | 429 | logger.warn('Error parsing reff_switching from webreport advice.', {err: err}); |
429 | 430 | } |
430 | - | |
431 | + | |
431 | 432 | try { |
432 | - responseMessage = | |
433 | + responseMessage = | |
433 | 434 | responseMessage |
434 | 435 | + ' | amount_trx: ' + status.response.amount_trx[0]; |
435 | 436 | } |
436 | 437 | catch(err) { |
437 | 438 | logger.warn('Error parsing amount_trx from webreport advice.', {err: err}); |
438 | 439 | } |
439 | - | |
440 | + | |
440 | 441 | try { |
441 | - responseMessage = | |
442 | + responseMessage = | |
442 | 443 | responseMessage |
443 | 444 | + ' | token: ' + status.response.token[0]; |
444 | 445 | } |
445 | 446 | catch(err) { |
446 | 447 | logger.warn('Error parsing token from webreport advice.', {err: err}); |
447 | 448 | } |
448 | - | |
449 | + | |
449 | 450 | try { |
450 | - responseMessage = | |
451 | + responseMessage = | |
451 | 452 | responseMessage |
452 | 453 | + ' | PrevBalance: ' + status.response.prevbalance[0]; |
453 | 454 | } |
454 | 455 | catch(err) { |
455 | 456 | logger.warn('Error parsing PrevBalance from webreport advice.', {err: err}); |
456 | 457 | } |
457 | - | |
458 | + | |
458 | 459 | try { |
459 | - responseMessage = | |
460 | + responseMessage = | |
460 | 461 | responseMessage |
461 | 462 | + ' | Price: ' + status.amount; |
462 | 463 | } |
463 | 464 | catch(err) { |
464 | 465 | logger.warn('Error parsing Price from webreport advice.', {err: err}); |
465 | 466 | } |
466 | - | |
467 | + | |
467 | 468 | try { |
468 | - responseMessage = | |
469 | + responseMessage = | |
469 | 470 | responseMessage |
470 | 471 | + ' | EndBalance: ' + status.response.endbalance[0]; |
471 | 472 | } |
472 | 473 | catch(err) { |
473 | 474 | logger.warn('Error parsing EndBalance from webreport advice.', {err: err}); |
474 | 475 | } |
475 | - | |
476 | - | |
476 | + | |
477 | + | |
477 | 478 | if ((status.status == 'S') && (status.response.resultcode[0] == '0000')) { |
478 | 479 | responseCode = '00'; |
479 | - | |
480 | + | |
480 | 481 | var nama_pelanggan = status.response.nama_pel[0] ; |
481 | 482 | nama_pelanggan = nama_pelanggan.replace(/-\/-/g, '-'); |
482 | - | |
483 | + | |
483 | 484 | var sn = status.response.token[0] + '/' + nama_pelanggan + '/' + status.response.tarif[0] + 'VA/' + status.response.jml_daya[0]; |
484 | 485 | responseMessage = 'SN=' + sn + '; ' + responseMessage; |
485 | - | |
486 | + | |
486 | 487 | } else if ((status.status == 'P') || (status.status == 'W')) { |
487 | - | |
488 | + | |
488 | 489 | callbackReport(status.response.reffid[0].trim(), '68', responseMessage); |
489 | 490 | logger.info('Got pending status, requesting advice from webreport in ' + sleep_before_retry + 'ms'); |
490 | - | |
491 | + | |
491 | 492 | setTimeout(function () { |
492 | - | |
493 | + | |
493 | 494 | cekstatus.advice({trxid: status.trxId,}, callbackFromWebReport); |
494 | - | |
495 | + | |
495 | 496 | }, sleep_before_retry); |
496 | 497 | return; |
497 | - | |
498 | + | |
498 | 499 | } else { |
499 | 500 | responseCode = status.response.resultcode[0].replace(/^00/, ""); |
500 | 501 | if (['00', '05', '12', '68', '90', '63', '18', '96'].indexOf(responseCode) >= 0) { |
501 | 502 | responseCode = '40'; |
502 | 503 | } |
503 | 504 | } |
504 | - | |
505 | - | |
505 | + | |
506 | + | |
506 | 507 | callbackReport(status.response.reffid[0].trim(), responseCode, responseMessage); |
507 | 508 | } |
508 | 509 | |
... | ... | @@ -510,37 +511,50 @@ function createHttpReportServer() { |
510 | 511 | var httpServer = http.createServer(function(request, response) { |
511 | 512 | var qs = url.parse(request.url, true).query; |
512 | 513 | var path = url.parse(request.url).pathname; |
513 | - | |
514 | + | |
514 | 515 | logger.info('Got reverse report from partner', {path: path, qs: qs}); |
515 | 516 | response.end('OK'); |
516 | - | |
517 | + | |
517 | 518 | var trxid; |
518 | 519 | try { |
519 | 520 | trxid = qs.transid; |
520 | 521 | } |
521 | 522 | catch(err) { |
522 | 523 | } |
523 | - | |
524 | + | |
524 | 525 | if (trxid) { |
525 | 526 | logger.info('Requesting advice from webreport', {trxid: trxid}) |
526 | 527 | cekstatus.advice({trxid: trxid}, callbackFromWebReport); |
527 | 528 | } |
528 | - | |
529 | + | |
529 | 530 | }); |
530 | - | |
531 | + | |
531 | 532 | httpServer.listen(config.h2h_out.listen_port, function() { |
532 | 533 | logger.info('HTTP Reverse/Report server listen on port ' + config.h2h_out.listen_port); |
533 | 534 | }); |
534 | 535 | } |
535 | 536 | |
536 | -function start(_config, _callbackReport, options) { | |
537 | - config = _config; | |
538 | - callbackReport = _callbackReport; | |
539 | - | |
540 | - if (options && options.aaa) { | |
541 | - aaa = options.aaa; | |
537 | +function start(options) { | |
538 | + if (!options) { | |
539 | + console.log('Undefined options, terminating....'); | |
540 | + process.exit(1); | |
541 | + } | |
542 | + | |
543 | + if (options.config) { | |
544 | + config = options.config; | |
545 | + } else { | |
546 | + console.log('Undefined options.config, terminating....') | |
547 | + process.exit(1); | |
548 | + } | |
549 | + | |
550 | + if (options.aaa) { | |
551 | + aaa = options.aaa; | |
552 | + callbackReport = options.aaa.callbackReportWithPushToMongoDb; | |
553 | + } else { | |
554 | + console.log('Undefined options.aaa, terminating....') | |
555 | + process.exit(1); | |
542 | 556 | } |
543 | - | |
557 | + | |
544 | 558 | if (options && options.logger) { |
545 | 559 | logger = options.logger; |
546 | 560 | } else { |
... | ... | @@ -550,7 +564,7 @@ function start(_config, _callbackReport, options) { |
550 | 564 | ] |
551 | 565 | }); |
552 | 566 | } |
553 | - | |
567 | + | |
554 | 568 | createHttpReportServer(); |
555 | 569 | initMongoClient(); |
556 | 570 | } |