Commit 40dfc57ccfc2d514a46df6c1cabb4316644f0788

Authored by Adhidarma Hadiwinoto
1 parent 7a59681851
Exists in master

Complain handler

Showing 3 changed files with 43 additions and 0 deletions Inline Diff

lib/command-handler/complain.js
File was created 1 const CORE_ENDPOINT = '/complains/create';
2
3 const commandError = require('./error');
4 const coreapi = require('../coreapi');
5
6 function help(keyword) {
7 return `Untuk membuat keluhan, ketik perintah dengan format: ${ keyword.toUpperCase() }.<KELUHAN-ANDA>.<PIN>`;
8 }
9
10 function execute(tokens, params, cb) {
11
12 if (!tokens || tokens.length < 3) {
13 const responseParams = {
14 body: `${ commandError.ERR_INVALID_FORMAT }. ${ help(tokens[0]) }`
15 }
16
17 cb(null, null, responseParams);
18 return;
19 }
20
21 const coreParams = {
22 asker_terminal_name: params.from,
23 asker_terminal_password: tokens[2],
24 message: tokens[1],
25 origin: params.origin,
26 report_ip: params.report_ip,
27 report_port: params.report_port,
28 };
29
30 coreapi(CORE_ENDPOINT, coreParams, 'GET', cb);
31 }
32
33 module.exports = execute;
lib/command-handler/index.js
1 "use strict"; 1 "use strict";
2 2
3 const logger = require('komodo-sdk/logger'); 3 const logger = require('komodo-sdk/logger');
4 4
5 const commandParser = require('../command-parser'); 5 const commandParser = require('../command-parser');
6 6
7 const commandError = require('./error'); 7 const commandError = require('./error');
8 8
9 const handlerAddBalance = require('./addbalance'); 9 const handlerAddBalance = require('./addbalance');
10 const handlerAddDownline = require('./adddownline'); 10 const handlerAddDownline = require('./adddownline');
11 const handlerAddTerminal = require('./addterminal'); 11 const handlerAddTerminal = require('./addterminal');
12 const handlerBalance = require('./balance'); 12 const handlerBalance = require('./balance');
13 const handlerBuy = require('./buy'); 13 const handlerBuy = require('./buy');
14 const handlerChangePin = require('./changepin'); 14 const handlerChangePin = require('./changepin');
15 const handlerClaimBonus = require('./claimbonus'); 15 const handlerClaimBonus = require('./claimbonus');
16 const handlerComplain = require('./complain');
16 const handlerDaySummary = require('./daysummary'); 17 const handlerDaySummary = require('./daysummary');
17 const handlerDepositTicket = require('./depositticket'); 18 const handlerDepositTicket = require('./depositticket');
18 const handlerDisableDownline = require('./disabledownline'); 19 const handlerDisableDownline = require('./disabledownline');
19 const handlerDownlineInfo = require('./downlineinfo'); 20 const handlerDownlineInfo = require('./downlineinfo');
20 const handlerEnableDownline = require('./enabledownline'); 21 const handlerEnableDownline = require('./enabledownline');
21 const handlerHelp = require('./help'); 22 const handlerHelp = require('./help');
22 const handlerInquiry = require('./inquiry'); 23 const handlerInquiry = require('./inquiry');
23 const handlerListDeposit = require('./listdeposit'); 24 const handlerListDeposit = require('./listdeposit');
24 const handlerListDownline = require('./listdownline'); 25 const handlerListDownline = require('./listdownline');
25 const handlerListTerminal = require('./listterminal'); 26 const handlerListTerminal = require('./listterminal');
26 const handlerListTrx = require('./listtrx'); 27 const handlerListTrx = require('./listtrx');
27 const handlerPay = require('./pay'); 28 const handlerPay = require('./pay');
28 const handlerPrice = require('./price'); 29 const handlerPrice = require('./price');
29 const handlerSupplierBalances = require('./supplierbalances'); 30 const handlerSupplierBalances = require('./supplierbalances');
30 const handlerTemporaryBonus = require('./temporarybonus'); 31 const handlerTemporaryBonus = require('./temporarybonus');
31 const handlerTransferBalance = require('./transferbalance'); 32 const handlerTransferBalance = require('./transferbalance');
32 33
33 function execute(msg, params, cb) { 34 function execute(msg, params, cb) {
34 35
35 if ( typeof msg !== 'string' || !msg.trim() ) { 36 if ( typeof msg !== 'string' || !msg.trim() ) {
36 cb(commandError.ERR_EMPTY_MESSAGE); 37 cb(commandError.ERR_EMPTY_MESSAGE);
37 return; 38 return;
38 } 39 }
39 40
40 const tokens = commandParser.splitToken(msg); 41 const tokens = commandParser.splitToken(msg);
41 const commandGroup = commandParser.extractCommandGroup(tokens); 42 const commandGroup = commandParser.extractCommandGroup(tokens);
42 params.commandGroup = commandGroup; 43 params.commandGroup = commandGroup;
43 logger.info('Processing message from partner', { msg, params, tokens, commandGroup }); 44 logger.info('Processing message from partner', { msg, params, tokens, commandGroup });
44 45
45 if (!commandGroup || commandGroup === 'buy') { 46 if (!commandGroup || commandGroup === 'buy') {
46 handlerBuy(tokens, params, cb); 47 handlerBuy(tokens, params, cb);
47 } 48 }
48 else if (commandGroup === 'balance') { 49 else if (commandGroup === 'balance') {
49 handlerBalance(tokens, params, cb); 50 handlerBalance(tokens, params, cb);
50 } 51 }
51 else if (commandGroup === 'addbalance') { 52 else if (commandGroup === 'addbalance') {
52 handlerAddBalance(tokens, params, cb); 53 handlerAddBalance(tokens, params, cb);
53 } 54 }
54 else if (commandGroup === 'transferbalance') { 55 else if (commandGroup === 'transferbalance') {
55 handlerTransferBalance(tokens, params, cb); 56 handlerTransferBalance(tokens, params, cb);
56 } 57 }
57 else if (commandGroup === 'price') { 58 else if (commandGroup === 'price') {
58 handlerPrice(tokens, params, cb); 59 handlerPrice(tokens, params, cb);
59 } 60 }
60 else if (commandGroup === 'listdownline') { 61 else if (commandGroup === 'listdownline') {
61 handlerListDownline(tokens, params, cb); 62 handlerListDownline(tokens, params, cb);
62 } 63 }
63 else if (commandGroup === 'downlineinfo') { 64 else if (commandGroup === 'downlineinfo') {
64 handlerDownlineInfo(tokens, params, cb); 65 handlerDownlineInfo(tokens, params, cb);
65 } 66 }
66 else if (commandGroup === 'adddownline') { 67 else if (commandGroup === 'adddownline') {
67 handlerAddDownline(tokens, params, cb); 68 handlerAddDownline(tokens, params, cb);
68 } 69 }
69 else if (commandGroup === 'listterminal') { 70 else if (commandGroup === 'listterminal') {
70 handlerListTerminal(tokens, params, cb); 71 handlerListTerminal(tokens, params, cb);
71 } 72 }
72 else if (commandGroup === 'listtrx' || commandGroup === 'listtrxall') { 73 else if (commandGroup === 'listtrx' || commandGroup === 'listtrxall') {
73 handlerListTrx(tokens, params, cb); 74 handlerListTrx(tokens, params, cb);
74 } 75 }
75 else if (commandGroup === 'listdeposit') { 76 else if (commandGroup === 'listdeposit') {
76 handlerListDeposit(tokens, params, cb); 77 handlerListDeposit(tokens, params, cb);
77 } 78 }
78 else if (commandGroup === 'addterminal') { 79 else if (commandGroup === 'addterminal') {
79 handlerAddTerminal(tokens, params, cb); 80 handlerAddTerminal(tokens, params, cb);
80 } 81 }
81 else if (commandGroup === 'changepin') { 82 else if (commandGroup === 'changepin') {
82 handlerChangePin(tokens, params, cb); 83 handlerChangePin(tokens, params, cb);
83 } 84 }
84 else if (commandGroup === 'enabledownline') { 85 else if (commandGroup === 'enabledownline') {
85 handlerEnableDownline(tokens, params, cb); 86 handlerEnableDownline(tokens, params, cb);
86 } 87 }
87 else if (commandGroup === 'daysummary' || commandGroup === 'daysummaryall') { 88 else if (commandGroup === 'daysummary' || commandGroup === 'daysummaryall') {
88 handlerDaySummary(tokens, params, cb); 89 handlerDaySummary(tokens, params, cb);
89 } 90 }
90 else if (commandGroup === 'depositticket') { 91 else if (commandGroup === 'depositticket') {
91 handlerDepositTicket(tokens, params, cb); 92 handlerDepositTicket(tokens, params, cb);
92 } 93 }
93 else if (commandGroup === 'disabledownline') { 94 else if (commandGroup === 'disabledownline') {
94 handlerDisableDownline(tokens, params, cb); 95 handlerDisableDownline(tokens, params, cb);
95 } 96 }
96 else if (commandGroup === 'supplierbalances') { 97 else if (commandGroup === 'supplierbalances') {
97 handlerSupplierBalances(tokens, params, cb); 98 handlerSupplierBalances(tokens, params, cb);
98 } 99 }
99 else if (commandGroup === 'claimbonus') { 100 else if (commandGroup === 'claimbonus') {
100 handlerClaimBonus(tokens, params, cb); 101 handlerClaimBonus(tokens, params, cb);
101 } 102 }
102 else if (commandGroup === 'temporarybonus') { 103 else if (commandGroup === 'temporarybonus') {
103 handlerTemporaryBonus(tokens, params, cb); 104 handlerTemporaryBonus(tokens, params, cb);
104 } 105 }
105 else if (commandGroup === 'inquiry') { 106 else if (commandGroup === 'inquiry') {
106 handlerInquiry(tokens, params, cb); 107 handlerInquiry(tokens, params, cb);
107 } 108 }
108 else if (commandGroup === 'pay') { 109 else if (commandGroup === 'pay') {
109 handlerPay(tokens, params, cb); 110 handlerPay(tokens, params, cb);
110 } 111 }
112 else if (commandGroup === 'complain') {
113 handlerComplain(tokens, params, cb);
114 }
111 else if (commandGroup === 'help') { 115 else if (commandGroup === 'help') {
112 handlerHelp(tokens, params, cb) 116 handlerHelp(tokens, params, cb)
113 } 117 }
114 else { 118 else {
115 cb(commandError.ERR_NOT_IMPLEMENTED); 119 cb(commandError.ERR_NOT_IMPLEMENTED);
116 } 120 }
117 } 121 }
118 122
119 module.exports = execute; 123 module.exports = execute;
lib/default-command.js
1 module.exports = { 1 module.exports = {
2 help: [ 2 help: [
3 "bantu", 3 "bantu",
4 "bantuan", 4 "bantuan",
5 "format", 5 "format",
6 "help", 6 "help",
7 "tolong", 7 "tolong",
8 ], 8 ],
9 buy: [ 9 buy: [
10 "beli", 10 "beli",
11 "buy", 11 "buy",
12 "i", 12 "i",
13 "isi", 13 "isi",
14 ], 14 ],
15 _statuscheck: [ 15 _statuscheck: [
16 "cekstatus", 16 "cekstatus",
17 "checkstatus", 17 "checkstatus",
18 "status", 18 "status",
19 ], 19 ],
20 balance: [ 20 balance: [
21 "bal", 21 "bal",
22 "balance", 22 "balance",
23 "ceksaldo", 23 "ceksaldo",
24 "checksaldo", 24 "checksaldo",
25 "s", 25 "s",
26 "sal", 26 "sal",
27 "saldo", 27 "saldo",
28 ], 28 ],
29 transferbalance: [ 29 transferbalance: [
30 "transfer", 30 "transfer",
31 "trf", 31 "trf",
32 ], 32 ],
33 addbalance: [ 33 addbalance: [
34 "addbalance", 34 "addbalance",
35 "addbal", 35 "addbal",
36 "tambahsaldo", 36 "tambahsaldo",
37 ], 37 ],
38 listdownline: [ 38 listdownline: [
39 "dllist", 39 "dllist",
40 "dlls", 40 "dlls",
41 "downlinelist", 41 "downlinelist",
42 "downlinels", 42 "downlinels",
43 "ldl", 43 "ldl",
44 "listdl", 44 "listdl",
45 "listdownline", 45 "listdownline",
46 "listmitra", 46 "listmitra",
47 "lsdl", 47 "lsdl",
48 "lsdownline", 48 "lsdownline",
49 "lsmitra", 49 "lsmitra",
50 "mitrals", 50 "mitrals",
51 ], 51 ],
52 adddownline: [ 52 adddownline: [
53 "adddl", 53 "adddl",
54 "adddownline", 54 "adddownline",
55 "addmitra", 55 "addmitra",
56 "buatdl", 56 "buatdl",
57 "buatdownline", 57 "buatdownline",
58 "createdl", 58 "createdl",
59 "createdownlne", 59 "createdownlne",
60 "createmitra", 60 "createmitra",
61 "regdl", 61 "regdl",
62 "regdownline", 62 "regdownline",
63 "registerdl", 63 "registerdl",
64 "registerdownline", 64 "registerdownline",
65 "registermitra", 65 "registermitra",
66 "regmitra", 66 "regmitra",
67 "tambahdl", 67 "tambahdl",
68 "tambahdownline", 68 "tambahdownline",
69 "tambahmitra", 69 "tambahmitra",
70 ], 70 ],
71 downlineinfo: [ 71 downlineinfo: [
72 "dl", 72 "dl",
73 "downline", 73 "downline",
74 "mitra", 74 "mitra",
75 "saldodownline", 75 "saldodownline",
76 "saldomitra", 76 "saldomitra",
77 "sd", 77 "sd",
78 "sdl", 78 "sdl",
79 ], 79 ],
80 disabledownline: [ 80 disabledownline: [
81 "disabledl", 81 "disabledl",
82 "disabledownline", 82 "disabledownline",
83 "disablemitra", 83 "disablemitra",
84 "nonaktifdl", 84 "nonaktifdl",
85 "nonaktifdownline", 85 "nonaktifdownline",
86 "nonaktifkandl", 86 "nonaktifkandl",
87 "nonaktifkandownline", 87 "nonaktifkandownline",
88 "nonaktifkanmitra", 88 "nonaktifkanmitra",
89 "nonaktifmitra", 89 "nonaktifmitra",
90 ], 90 ],
91 enabledownline: [ 91 enabledownline: [
92 "aktifkandl", 92 "aktifkandl",
93 "aktifkandownline", 93 "aktifkandownline",
94 "aktifkanmitra", 94 "aktifkanmitra",
95 "aktivasidl", 95 "aktivasidl",
96 "aktivasidownline", 96 "aktivasidownline",
97 "aktivasimitra", 97 "aktivasimitra",
98 "enabledl", 98 "enabledl",
99 "enabledownline", 99 "enabledownline",
100 "enablemitra", 100 "enablemitra",
101 ], 101 ],
102 daysummary: [ 102 daysummary: [
103 "lap", 103 "lap",
104 "laporan", 104 "laporan",
105 "rekap", 105 "rekap",
106 ], 106 ],
107 daysummaryall: [ 107 daysummaryall: [
108 "lapall", 108 "lapall",
109 "laporanall", 109 "laporanall",
110 "rekapall", 110 "rekapall",
111 ], 111 ],
112 _daysummarydownline: [ 112 _daysummarydownline: [
113 "lapdl", 113 "lapdl",
114 "lapdownline", 114 "lapdownline",
115 "lapmitra", 115 "lapmitra",
116 "laporandl", 116 "laporandl",
117 "laporandownline", 117 "laporandownline",
118 "laporanmitra", 118 "laporanmitra",
119 "rekapalldl", 119 "rekapalldl",
120 "rekapalldownline", 120 "rekapalldownline",
121 "rekapallmitra", 121 "rekapallmitra",
122 ], 122 ],
123 _maintenanceactivate: [ 123 _maintenanceactivate: [
124 "activatemaintenance", 124 "activatemaintenance",
125 "maintenanceactivate" 125 "maintenanceactivate"
126 ], 126 ],
127 _maintenancedeactivate: [ 127 _maintenancedeactivate: [
128 "deactivatemaintenance", 128 "deactivatemaintenance",
129 "maintenancedeactivate" 129 "maintenancedeactivate"
130 ], 130 ],
131 price: [ 131 price: [
132 "cekharga", 132 "cekharga",
133 "ch", 133 "ch",
134 "checkharga", 134 "checkharga",
135 "h", 135 "h",
136 "harga", 136 "harga",
137 "hargaproduct", 137 "hargaproduct",
138 "hargaproduk", 138 "hargaproduk",
139 "price", 139 "price",
140 ], 140 ],
141 changepin: [ 141 changepin: [
142 "changepin", 142 "changepin",
143 "gantipin", 143 "gantipin",
144 "pin", 144 "pin",
145 "setpin", 145 "setpin",
146 "ubahpin", 146 "ubahpin",
147 ], 147 ],
148 depositticket: [ 148 depositticket: [
149 'depo', 149 'depo',
150 'depositticket', 150 'depositticket',
151 'depoticket', 151 'depoticket',
152 'tiket', 152 'tiket',
153 'tiketdeposit', 153 'tiketdeposit',
154 ], 154 ],
155 listdeposit: [ 155 listdeposit: [
156 'depolist', 156 'depolist',
157 'depositlist', 157 'depositlist',
158 'listdepo', 158 'listdepo',
159 'listdeposit', 159 'listdeposit',
160 'listtransfer', 160 'listtransfer',
161 'listtrf', 161 'listtrf',
162 'rekapdepo', 162 'rekapdepo',
163 'rekapdeposit', 163 'rekapdeposit',
164 'rekaptransfer', 164 'rekaptransfer',
165 'rekaptrf', 165 'rekaptrf',
166 'transferlist', 166 'transferlist',
167 'trflist', 167 'trflist',
168 ], 168 ],
169 listterminal: [ 169 listterminal: [
170 'listmsisdn', 170 'listmsisdn',
171 'listterminal', 171 'listterminal',
172 'listterm', 172 'listterm',
173 'lsmsisdn', 173 'lsmsisdn',
174 'lsterminal', 174 'lsterminal',
175 'lsterm', 175 'lsterm',
176 'msisdn', 176 'msisdn',
177 'msisdnlist', 177 'msisdnlist',
178 'msisdnls', 178 'msisdnls',
179 'terminal', 179 'terminal',
180 'terminallist', 180 'terminallist',
181 'terminalls', 181 'terminalls',
182 'terminalterdaftar', 182 'terminalterdaftar',
183 ], 183 ],
184 addterminal: [ 184 addterminal: [
185 'addmsisdn', 185 'addmsisdn',
186 'addterminal', 186 'addterminal',
187 'createmsisdn', 187 'createmsisdn',
188 'createterminal', 188 'createterminal',
189 'msisdnadd', 189 'msisdnadd',
190 'newmsisdn', 190 'newmsisdn',
191 'newterminal', 191 'newterminal',
192 'registerterminal', 192 'registerterminal',
193 'regmsisdn', 193 'regmsisdn',
194 'regterminal', 194 'regterminal',
195 'tambahmsisdn', 195 'tambahmsisdn',
196 'tambahterminal', 196 'tambahterminal',
197 'terminaladd', 197 'terminaladd',
198 ], 198 ],
199 supplierbalances: [ 199 supplierbalances: [
200 'supbal', 200 'supbal',
201 'supplier', 201 'supplier',
202 'supplierbal', 202 'supplierbal',
203 'supplierbalance', 203 'supplierbalance',
204 'supplierbalances', 204 'supplierbalances',
205 'suppliers', 205 'suppliers',
206 'suppliersbal', 206 'suppliersbal',
207 'suppliersbalance', 207 'suppliersbalance',
208 'suppliersbalances', 208 'suppliersbalances',
209 ], 209 ],
210 listtrx: [ 210 listtrx: [
211 'listtrx', 211 'listtrx',
212 'listtransaksi', 212 'listtransaksi',
213 ], 213 ],
214 listtrxall: [ 214 listtrxall: [
215 'listtrxall', 215 'listtrxall',
216 'listtransaksiall', 216 'listtransaksiall',
217 ], 217 ],
218 temporarybonus: [ 218 temporarybonus: [
219 'bonus', 219 'bonus',
220 'bonustemp', 220 'bonustemp',
221 'bonustemporary', 221 'bonustemporary',
222 'tempbonus', 222 'tempbonus',
223 'temporarybonus' 223 'temporarybonus'
224 ], 224 ],
225 claimbonus: [ 225 claimbonus: [
226 'ambilbonus', 226 'ambilbonus',
227 'ambilrebate', 227 'ambilrebate',
228 'bonusclaim', 228 'bonusclaim',
229 'claimbonus', 229 'claimbonus',
230 'claimrebate', 230 'claimrebate',
231 'rebateclaim', 231 'rebateclaim',
232 'tarikbonus', 232 'tarikbonus',
233 'tarikrebate', 233 'tarikrebate',
234 ], 234 ],
235 complain: [
236 'c',
237 'complain',
238 'komplain',
239 'komplen',
240 ],
235 inquiry: [ 241 inquiry: [
236 'cektagihan', 242 'cektagihan',
237 'infotagihan', 243 'infotagihan',
238 'inq', 244 'inq',
239 'inquiry', 245 'inquiry',
240 'tagihan', 246 'tagihan',
241 ], 247 ],
242 pay: [ 248 pay: [
243 'bayar', 249 'bayar',
244 'bayartagihan', 250 'bayartagihan',
245 'pay', 251 'pay',
246 ], 252 ],
247 _setmarkup: [ 253 _setmarkup: [
248 'markup' 254 'markup'
249 ], 255 ],
250 _news: [ 256 _news: [
251 'berita', 257 'berita',
252 'news', 258 'news',
253 'promo', 259 'promo',
254 ] 260 ]
255 } 261 }
256 262