Commit db6161cd716b92fd97765cca8e9a79617dcb60fb
1 parent
364e6b5d75
Exists in
master
cek saldo
Showing 4 changed files with 183 additions and 5 deletions Side-by-side Diff
config.sample.json
... | ... | @@ -4,5 +4,9 @@ |
4 | 4 | "password": "change-me", |
5 | 5 | "warming_up_ms": 60000, |
6 | 6 | "core_url": "http://localhost:32972/apikey/PLEASE-CHANGE-WITH-VALID-APIKEY", |
7 | - "listen_port": 14232 | |
7 | + "listen_port": 14232, | |
8 | + "commands": { | |
9 | + "balance": ["S", "SAL", "SALDO", "BAL", "BALANCE", "CEKSALDO"], | |
10 | + "price": ["H", "HP", "CH", "HARGA", "CEKHARGA", "PRICE"] | |
11 | + } | |
8 | 12 | } |
logs/log.2017-08-22
... | ... | @@ -0,0 +1,113 @@ |
1 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 12:52:50"} | |
2 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 12:52:50"} | |
3 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 12:52:51"} | |
4 | +{"level":"verbose","message":"Transport is ready","timestamp":"2017-08-22 12:52:52"} | |
5 | +{"level":"info","message":"CENTER is ONLINE, ready to communicate","timestamp":"2017-08-22 12:52:52"} | |
6 | +{"me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"s.1234","level":"info","message":"Incoming message via XMPP transport","timestamp":"2017-08-22 12:53:06"} | |
7 | +{"level":"verbose","message":"Reporting message to CORE","timestamp":"2017-08-22 12:53:06"} | |
8 | +{"qs":{"request_id":"S_1234_20170822","terminal_name":"adhisimon@host2host.id","product_name":"S","destination":"1234","origin":"XMPP0","report_port":14232,"msg":"s.1234"},"level":"verbose","message":"Request buy a prepaid product to CORE","timestamp":"2017-08-22 12:53:06"} | |
9 | +{"body":"{\"request_id\":\"S_1234_20170822\",\"terminal_name\":\"adhisimon@host2host.id\",\"product_name\":\"S\",\"destination\":\"1234\",\"rc\":\"03\",\"message\":\"Pembelian S ke 1234 GAGAL. Kesalahan validitas store / terminal / password.\",\"origin\":\"XMPP0\",\"origin_report_ip\":\"::ffff:127.0.0.1\",\"origin_report_port\":\"14232\"}","level":"verbose","message":"Got direct response from CORE","timestamp":"2017-08-22 12:53:06"} | |
10 | +{"transport":"xmpp","me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"Pembelian S ke 1234 GAGAL. Kesalahan validitas store / terminal / password.","level":"verbose","message":"Sending message via XMPP transport","timestamp":"2017-08-22 12:53:06"} | |
11 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 12:53:46"} | |
12 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 12:53:46"} | |
13 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 12:53:47"} | |
14 | +{"level":"verbose","message":"Transport is ready","timestamp":"2017-08-22 12:53:48"} | |
15 | +{"level":"info","message":"CENTER is ONLINE, ready to communicate","timestamp":"2017-08-22 12:53:48"} | |
16 | +{"me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"s.1234","level":"info","message":"Incoming message via XMPP transport","timestamp":"2017-08-22 12:53:50"} | |
17 | +{"level":"verbose","message":"Reporting message to CORE","timestamp":"2017-08-22 12:53:50"} | |
18 | +{"me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"s","level":"info","message":"Incoming message via XMPP transport","timestamp":"2017-08-22 12:54:03"} | |
19 | +{"level":"verbose","message":"Reporting message to CORE","timestamp":"2017-08-22 12:54:03"} | |
20 | +{"me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"s","level":"info","message":"Incoming message via XMPP transport","timestamp":"2017-08-22 12:54:26"} | |
21 | +{"level":"verbose","message":"Reporting message to CORE","timestamp":"2017-08-22 12:54:26"} | |
22 | +{"me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"s.1234","level":"info","message":"Incoming message via XMPP transport","timestamp":"2017-08-22 12:54:33"} | |
23 | +{"level":"verbose","message":"Reporting message to CORE","timestamp":"2017-08-22 12:54:33"} | |
24 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 12:55:13"} | |
25 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 12:55:13"} | |
26 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 12:55:13"} | |
27 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 12:55:15"} | |
28 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 12:55:15"} | |
29 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 12:55:15"} | |
30 | +{"level":"verbose","message":"Transport is ready","timestamp":"2017-08-22 12:55:16"} | |
31 | +{"level":"info","message":"CENTER is ONLINE, ready to communicate","timestamp":"2017-08-22 12:55:16"} | |
32 | +{"me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"s.1234","level":"info","message":"Incoming message via XMPP transport","timestamp":"2017-08-22 12:55:20"} | |
33 | +{"level":"verbose","message":"Reporting message to CORE","timestamp":"2017-08-22 12:55:20"} | |
34 | +{"url":"http://localhost:32972/apikey/c47ed08df360a15f9c60e8cfb3020f7d083b3f89/services/balance","qs":{"terminal_name":"adhisimon@host2host.id","password":"1234"},"level":"verbose","message":"Requesting balance service to CORE","timestamp":"2017-08-22 12:55:20"} | |
35 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 12:57:38"} | |
36 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 12:57:38"} | |
37 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 12:57:38"} | |
38 | +{"level":"verbose","message":"Transport is ready","timestamp":"2017-08-22 12:57:39"} | |
39 | +{"level":"info","message":"CENTER is ONLINE, ready to communicate","timestamp":"2017-08-22 12:57:39"} | |
40 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 12:57:46"} | |
41 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 12:57:46"} | |
42 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 12:57:46"} | |
43 | +{"level":"verbose","message":"Transport is ready","timestamp":"2017-08-22 12:57:47"} | |
44 | +{"level":"info","message":"CENTER is ONLINE, ready to communicate","timestamp":"2017-08-22 12:57:47"} | |
45 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 12:59:09"} | |
46 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 12:59:09"} | |
47 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 12:59:09"} | |
48 | +{"level":"verbose","message":"Transport is ready","timestamp":"2017-08-22 12:59:10"} | |
49 | +{"level":"info","message":"CENTER is ONLINE, ready to communicate","timestamp":"2017-08-22 12:59:10"} | |
50 | +{"me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"s.1234","level":"info","message":"Incoming message via XMPP transport","timestamp":"2017-08-22 12:59:13"} | |
51 | +{"level":"verbose","message":"Reporting message to CORE","timestamp":"2017-08-22 12:59:13"} | |
52 | +{"url":"http://localhost:32972/apikey/c47ed08df360a15f9c60e8cfb3020f7d083b3f89/services/balance","qs":{"terminal_name":"adhisimon@host2host.id","password":"1234"},"level":"verbose","message":"Requesting balance service to CORE","timestamp":"2017-08-22 12:59:13"} | |
53 | +{"transport":"xmpp","me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"MASTER, saldo anda saat ini Rp. 532.200.","level":"verbose","message":"Sending message via XMPP transport","timestamp":"2017-08-22 12:59:13"} | |
54 | +{"me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"sal.1234","level":"info","message":"Incoming message via XMPP transport","timestamp":"2017-08-22 13:01:03"} | |
55 | +{"level":"verbose","message":"Reporting message to CORE","timestamp":"2017-08-22 13:01:03"} | |
56 | +{"qs":{"request_id":"SAL_1234_20170822","terminal_name":"adhisimon@host2host.id","product_name":"SAL","destination":"1234","origin":"XMPP0","report_port":14232,"msg":"sal.1234"},"level":"verbose","message":"Request buy a prepaid product to CORE","timestamp":"2017-08-22 13:01:03"} | |
57 | +{"body":"{\"request_id\":\"SAL_1234_20170822\",\"terminal_name\":\"adhisimon@host2host.id\",\"product_name\":\"SAL\",\"destination\":\"1234\",\"rc\":\"03\",\"message\":\"Pembelian SAL ke 1234 GAGAL. Kesalahan validitas store / terminal / password.\",\"origin\":\"XMPP0\",\"origin_report_ip\":\"::ffff:127.0.0.1\",\"origin_report_port\":\"14232\"}","level":"verbose","message":"Got direct response from CORE","timestamp":"2017-08-22 13:01:03"} | |
58 | +{"transport":"xmpp","me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"Pembelian SAL ke 1234 GAGAL. Kesalahan validitas store / terminal / password.","level":"verbose","message":"Sending message via XMPP transport","timestamp":"2017-08-22 13:01:03"} | |
59 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 13:01:32"} | |
60 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 13:01:32"} | |
61 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 13:01:32"} | |
62 | +{"level":"verbose","message":"Transport is ready","timestamp":"2017-08-22 13:01:33"} | |
63 | +{"level":"info","message":"CENTER is ONLINE, ready to communicate","timestamp":"2017-08-22 13:01:33"} | |
64 | +{"me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"s.1234","level":"info","message":"Incoming message via XMPP transport","timestamp":"2017-08-22 13:01:35"} | |
65 | +{"level":"verbose","message":"Reporting message to CORE","timestamp":"2017-08-22 13:01:35"} | |
66 | +{"url":"http://localhost:32972/apikey/c47ed08df360a15f9c60e8cfb3020f7d083b3f89/services/balance","qs":{"terminal_name":"adhisimon@host2host.id","password":"1234"},"level":"verbose","message":"Requesting balance service to CORE","timestamp":"2017-08-22 13:01:35"} | |
67 | +{"transport":"xmpp","me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"MASTER, saldo anda saat ini Rp. 532.200.","level":"verbose","message":"Sending message via XMPP transport","timestamp":"2017-08-22 13:01:35"} | |
68 | +{"me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"sal.123","level":"info","message":"Incoming message via XMPP transport","timestamp":"2017-08-22 13:01:38"} | |
69 | +{"level":"verbose","message":"Reporting message to CORE","timestamp":"2017-08-22 13:01:38"} | |
70 | +{"url":"http://localhost:32972/apikey/c47ed08df360a15f9c60e8cfb3020f7d083b3f89/services/balance","qs":{"terminal_name":"adhisimon@host2host.id","password":"123"},"level":"verbose","message":"Requesting balance service to CORE","timestamp":"2017-08-22 13:01:38"} | |
71 | +{"transport":"xmpp","me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"Kesalahan autentikasi dalam pengecekan saldo","level":"verbose","message":"Sending message via XMPP transport","timestamp":"2017-08-22 13:01:38"} | |
72 | +{"me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"sal.1234","level":"info","message":"Incoming message via XMPP transport","timestamp":"2017-08-22 13:01:40"} | |
73 | +{"level":"verbose","message":"Reporting message to CORE","timestamp":"2017-08-22 13:01:40"} | |
74 | +{"url":"http://localhost:32972/apikey/c47ed08df360a15f9c60e8cfb3020f7d083b3f89/services/balance","qs":{"terminal_name":"adhisimon@host2host.id","password":"1234"},"level":"verbose","message":"Requesting balance service to CORE","timestamp":"2017-08-22 13:01:40"} | |
75 | +{"transport":"xmpp","me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"MASTER, saldo anda saat ini Rp. 532.200.","level":"verbose","message":"Sending message via XMPP transport","timestamp":"2017-08-22 13:01:40"} | |
76 | +{"me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"saldo.1234","level":"info","message":"Incoming message via XMPP transport","timestamp":"2017-08-22 13:01:43"} | |
77 | +{"level":"verbose","message":"Reporting message to CORE","timestamp":"2017-08-22 13:01:43"} | |
78 | +{"url":"http://localhost:32972/apikey/c47ed08df360a15f9c60e8cfb3020f7d083b3f89/services/balance","qs":{"terminal_name":"adhisimon@host2host.id","password":"1234"},"level":"verbose","message":"Requesting balance service to CORE","timestamp":"2017-08-22 13:01:43"} | |
79 | +{"transport":"xmpp","me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"MASTER, saldo anda saat ini Rp. 532.200.","level":"verbose","message":"Sending message via XMPP transport","timestamp":"2017-08-22 13:01:43"} | |
80 | +{"me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"saldo","level":"info","message":"Incoming message via XMPP transport","timestamp":"2017-08-22 13:01:44"} | |
81 | +{"level":"verbose","message":"Reporting message to CORE","timestamp":"2017-08-22 13:01:44"} | |
82 | +{"url":"http://localhost:32972/apikey/c47ed08df360a15f9c60e8cfb3020f7d083b3f89/services/balance","qs":{"terminal_name":"adhisimon@host2host.id"},"level":"verbose","message":"Requesting balance service to CORE","timestamp":"2017-08-22 13:01:44"} | |
83 | +{"transport":"xmpp","me":"komodo_trx0@host2host.id","partner":"adhisimon@host2host.id","msg":"Kesalahan autentikasi dalam pengecekan saldo","level":"verbose","message":"Sending message via XMPP transport","timestamp":"2017-08-22 13:01:44"} | |
84 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 13:02:09"} | |
85 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 13:02:09"} | |
86 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 13:02:09"} | |
87 | +{"level":"verbose","message":"Transport is ready","timestamp":"2017-08-22 13:02:10"} | |
88 | +{"level":"info","message":"CENTER is ONLINE, ready to communicate","timestamp":"2017-08-22 13:02:10"} | |
89 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 13:05:08"} | |
90 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 13:05:08"} | |
91 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 13:05:08"} | |
92 | +{"level":"verbose","message":"Transport is ready","timestamp":"2017-08-22 13:05:09"} | |
93 | +{"level":"info","message":"CENTER is ONLINE, ready to communicate","timestamp":"2017-08-22 13:05:09"} | |
94 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 13:05:29"} | |
95 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 13:05:29"} | |
96 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 13:05:29"} | |
97 | +{"level":"verbose","message":"Transport is ready","timestamp":"2017-08-22 13:05:30"} | |
98 | +{"level":"info","message":"CENTER is ONLINE, ready to communicate","timestamp":"2017-08-22 13:05:30"} | |
99 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 13:05:59"} | |
100 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 13:05:59"} | |
101 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 13:05:59"} | |
102 | +{"level":"verbose","message":"Transport is ready","timestamp":"2017-08-22 13:06:00"} | |
103 | +{"level":"info","message":"CENTER is ONLINE, ready to communicate","timestamp":"2017-08-22 13:06:00"} | |
104 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 13:06:08"} | |
105 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 13:06:08"} | |
106 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 13:06:08"} | |
107 | +{"level":"verbose","message":"Transport is ready","timestamp":"2017-08-22 13:06:09"} | |
108 | +{"level":"info","message":"CENTER is ONLINE, ready to communicate","timestamp":"2017-08-22 13:06:09"} | |
109 | +{"level":"verbose","message":"/home/adhisimon/Projects/komodo-center-xmpp/node_modules/komodo-sdk/logger.js: initialized","timestamp":"2017-08-22 13:06:29"} | |
110 | +{"level":"info","message":"HTTP Reverse/Report server listen on port 14232","timestamp":"2017-08-22 13:06:29"} | |
111 | +{"level":"info","message":"XMPP transport connected, JID: komodo_trx0","timestamp":"2017-08-22 13:06:30"} | |
112 | +{"level":"verbose","message":"Transport is ready","timestamp":"2017-08-22 13:06:31"} | |
113 | +{"level":"info","message":"CENTER is ONLINE, ready to communicate","timestamp":"2017-08-22 13:06:31"} |
transport-xmpp.js
... | ... | @@ -29,6 +29,10 @@ bot.on('online', function(data) { |
29 | 29 | }); |
30 | 30 | |
31 | 31 | bot.on('chat', function(partner, msg) { |
32 | + if (!msg || !msg.trim()) { | |
33 | + return; | |
34 | + } | |
35 | + | |
32 | 36 | if (!_isReady) { |
33 | 37 | logger.warn('Warming up is not finished yet, ignoring message', {me: config.username, partner: partner, msg: msg}); |
34 | 38 | return; |
... | ... | @@ -40,7 +44,7 @@ bot.on('chat', function(partner, msg) { |
40 | 44 | _callback.onIncomingMessage({ |
41 | 45 | me: config.username, |
42 | 46 | partner: partner, |
43 | - msg: msg | |
47 | + msg: msg.trim() | |
44 | 48 | }) |
45 | 49 | } |
46 | 50 | }) |
trx-center.js
1 | 1 | "use strict"; |
2 | 2 | |
3 | +const path = require('path'); | |
3 | 4 | const request = require('request'); |
4 | 5 | const strftime = require('strftime'); |
5 | 6 | const config = require('komodo-sdk/config'); |
6 | 7 | const logger = require('komodo-sdk/logger'); |
7 | 8 | |
9 | +const module_name = path.basename(__filename); | |
10 | + | |
8 | 11 | let transport; |
9 | 12 | |
10 | 13 | function onOnline(params) { |
... | ... | @@ -14,15 +17,69 @@ function onOnline(params) { |
14 | 17 | |
15 | 18 | function onIncomingMessage(paramsFromTransport) { |
16 | 19 | logger.verbose('Reporting message to CORE') |
17 | - prepaidBuy(paramsFromTransport); | |
20 | + | |
21 | + const command = paramsFromTransport.msg.split(/[\., ]+/)[0].toUpperCase(); | |
22 | + | |
23 | + if (config.commands.balance.indexOf(command) >= 0) { | |
24 | + executeBalanceCheck(paramsFromTransport); | |
25 | + } | |
26 | + else { | |
27 | + executePrepaidBuy(paramsFromTransport); | |
28 | + } | |
29 | +} | |
30 | + | |
31 | +function executeBalanceCheck(paramsFromTransport) { | |
32 | + const terminal_name = paramsFromTransport.partner.toLowerCase(); | |
33 | + const password = paramsFromTransport.msg.trim().split(/[\., ]+/)[1]; | |
34 | + | |
35 | + const core_url = config.core_url + '/services/balance'; | |
36 | + const qs = { | |
37 | + terminal_name: terminal_name, | |
38 | + password: password | |
39 | + } | |
40 | + | |
41 | + logger.verbose('Requesting balance service to CORE', {url: core_url, qs: qs}); | |
42 | + | |
43 | + request({url: core_url, qs: qs}, function(err, res, body) { | |
44 | + if (err || res.statusCode != 200) { | |
45 | + logger.warn('Error requesting to CORE', {module_name: module_name, method_name: 'executePrepaidBuy', err: err}); | |
46 | + transport.send(terminal_name, 'INTERNAL ERROR'); | |
47 | + return; | |
48 | + } | |
49 | + | |
50 | + let result = parseBalanceResponse(body); | |
51 | + if (!result || !result.message) { | |
52 | + transport.send(terminal_name, 'INTERNAL ERROR'); | |
53 | + return; | |
54 | + } | |
55 | + | |
56 | + transport.send(terminal_name, result.message); | |
57 | + }) | |
58 | +} | |
59 | + | |
60 | +function executePriceCheck(paramsFromTransport) { | |
61 | + transport.send(params.partner, 'Layanan belum tersedia.'); | |
62 | +} | |
63 | + | |
64 | +function parseBalanceResponse(body) { | |
65 | + let result; | |
66 | + | |
67 | + try { | |
68 | + result = JSON.parse(body); | |
69 | + } | |
70 | + catch(e) { | |
71 | + logger.warn('Error JSON parsing', {module_name: module_name, method_name: 'parseBalanceResponse', body: body}) | |
72 | + result = null; | |
73 | + } | |
74 | + return result; | |
18 | 75 | } |
19 | 76 | |
20 | 77 | function generateRequestId(req) { |
21 | 78 | return req.product_name + '_' + req.destination + '_' + strftime('%Y%m%d'); |
22 | 79 | } |
23 | 80 | |
24 | -function prepaidBuy(paramsFromTransport) { | |
25 | - let tokens = paramsFromTransport.msg.trim().split('.'); | |
81 | +function executePrepaidBuy(paramsFromTransport) { | |
82 | + let tokens = paramsFromTransport.msg.trim().split(/[\., ]+/); | |
26 | 83 | |
27 | 84 | let qs = { |
28 | 85 | request_id: paramsFromTransport.request_id, |