Blame view
lib/partner-listener/routers/trx-status.js
4.04 KB
12f6d059c
|
1 |
const MODULE_NAME = 'PARTNER-LISTENER.ROUTERS.TRX-STATUS'; |
ab5828535
|
2 3 4 5 6 7 |
const express = require('express'); const moment = require('moment'); const logger = require('komodo-sdk/logger'); const coreapi = require('../../coreapi'); |
732c359a7
|
8 |
const dumper = require('../dumper'); |
ab5828535
|
9 10 11 12 13 |
const router = express.Router(); module.exports = router; async function pageIndex(req, res) { |
12f6d059c
|
14 |
const { xid } = res.locals; |
ab5828535
|
15 16 17 |
if (!req.body) req.body = {}; if (!req.body.terminal_name && !req.query.terminal_name) { |
732c359a7
|
18 |
const msg = 'Parameter terminal_name tidak terdefinisi'; |
ab5828535
|
19 |
res.json({ |
12f6d059c
|
20 21 |
httpgetx_xid: xid, error: true, |
732c359a7
|
22 |
message: msg, |
ab5828535
|
23 |
}); |
732c359a7
|
24 25 |
dumper(xid, req, msg); |
ab5828535
|
26 27 28 29 |
return; } if (!req.body.password && !req.query.password) { |
732c359a7
|
30 |
const msg = 'Parameter password tidak terdefinisi'; |
ab5828535
|
31 |
res.json({ |
12f6d059c
|
32 |
httpgetx_xid: xid, |
ab5828535
|
33 |
error: true, |
732c359a7
|
34 |
message: msg, |
ab5828535
|
35 |
}); |
732c359a7
|
36 37 |
dumper(xid, req, msg); |
ab5828535
|
38 39 40 41 |
return; } if (!req.body.request_id && !req.query.request_id) { |
732c359a7
|
42 |
const msg = 'Parameter request_id tidak terdefinisi'; |
ab5828535
|
43 |
res.json({ |
12f6d059c
|
44 |
httpgetx_xid: xid, |
ab5828535
|
45 |
error: true, |
732c359a7
|
46 |
message: msg, |
ab5828535
|
47 |
}); |
732c359a7
|
48 49 |
dumper(xid, req, msg); |
ab5828535
|
50 51 52 53 54 55 56 |
return; } const remoteIp = req.ip.replace(/^::ffff:/, ''); const askerTerminalName = `${req.body.terminal_name || req.query.terminal_name}@${remoteIp}`; const coreResponse = await coreapi({ |
12f6d059c
|
57 |
xid, |
ab5828535
|
58 59 60 61 62 63 64 65 66 67 |
path: '/trx-status/view', qs: { asker_terminal_name: askerTerminalName, asker_terminal_password: req.body.password || req.query.password, request_id: req.body.request_id || req.query.request_id, }, }); if (!coreResponse || !coreResponse.status) { const msg = 'Status transaksi tidak dapat diketahui karena suatu kesalahan pada sistem'; |
12f6d059c
|
68 69 |
logger.warn(`${MODULE_NAME} 9983DB34: ${msg}`, { xid, |
ab5828535
|
70 71 72 73 |
ip: req.ip, terminal_name: req.body.terminal_name || req.query.terminal_name, request_id: req.body.request_id || req.query.request_id, }); |
732c359a7
|
74 |
const responseBody = { |
12f6d059c
|
75 |
httpgetx_xid: xid, |
ab5828535
|
76 77 78 79 80 81 |
error: true, from_ip: remoteIp, terminal_name: req.body.terminal_name || req.query.terminal_name, full_terminal_name: askerTerminalName, password: req.body.password || req.query.password, message: msg, |
732c359a7
|
82 83 84 85 |
}; res.json(responseBody); dumper(xid, req, responseBody); |
ab5828535
|
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
return; } const trx = coreResponse && coreResponse.result ? { id: coreResponse.result.id, request_id: coreResponse.result.request_id, store_id: coreResponse.result.store_id, store_name: coreResponse.result.store_name, terminal_id: coreResponse.result.terminal_id, terminal_name: coreResponse.result.terminal_name, created: moment(coreResponse.result.created).format('YYYY-MM-DD HH:mm:ss'), modified: moment(coreResponse.result.modified).format('YYYY-MM-DD HH:mm:ss'), product_name: coreResponse.result.product_name, destination: coreResponse.result.destination, amount: coreResponse.result.amount, ending_balance: coreResponse.result.ending_balance, rc: coreResponse.result.rc, message: coreResponse.result.reply_message, sn: coreResponse.result.sn, } : null; |
038a3f3ea
|
109 |
const result = { |
12f6d059c
|
110 |
httpgetx_xid: xid, |
ab5828535
|
111 112 113 114 |
error: coreResponse.status !== 'OK', from_ip: remoteIp, terminal_name: req.body.terminal_name || req.query.terminal_name, full_terminal_name: askerTerminalName, |
ab5828535
|
115 |
message: coreResponse.message, |
29abebf10
|
116 |
trx_found: !!trx, |
ab5828535
|
117 118 |
trx, // original_trx: coreResponse.result, |
038a3f3ea
|
119 120 121 |
}; res.json(result); |
12f6d059c
|
122 123 124 125 126 |
logger.info(`${MODULE_NAME} 480C4BB0: Partner request responded`, { xid, processing_time_in_ms: new Date() - res.locals.x_http_request_ts, result, }); |
732c359a7
|
127 128 |
dumper(xid, req, result); |
ab5828535
|
129 130 131 |
} router.get('/', pageIndex); |