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 |
const express = require('express'); const moment = require('moment'); |
810fa18da
|
4 |
const logger = require('tektrans-logger'); |
ab5828535
|
5 6 |
const coreapi = require('../../coreapi'); |
732c359a7
|
7 |
const dumper = require('../dumper'); |
ab5828535
|
8 9 10 11 12 |
const router = express.Router(); module.exports = router; async function pageIndex(req, res) { |
12f6d059c
|
13 |
const { xid } = res.locals; |
ab5828535
|
14 15 16 |
if (!req.body) req.body = {}; if (!req.body.terminal_name && !req.query.terminal_name) { |
732c359a7
|
17 |
const msg = 'Parameter terminal_name tidak terdefinisi'; |
ab5828535
|
18 |
res.json({ |
12f6d059c
|
19 20 |
httpgetx_xid: xid, error: true, |
732c359a7
|
21 |
message: msg, |
ab5828535
|
22 |
}); |
732c359a7
|
23 24 |
dumper(xid, req, msg); |
ab5828535
|
25 26 27 28 |
return; } if (!req.body.password && !req.query.password) { |
732c359a7
|
29 |
const msg = 'Parameter password tidak terdefinisi'; |
ab5828535
|
30 |
res.json({ |
12f6d059c
|
31 |
httpgetx_xid: xid, |
ab5828535
|
32 |
error: true, |
732c359a7
|
33 |
message: msg, |
ab5828535
|
34 |
}); |
732c359a7
|
35 36 |
dumper(xid, req, msg); |
ab5828535
|
37 38 39 40 |
return; } if (!req.body.request_id && !req.query.request_id) { |
732c359a7
|
41 |
const msg = 'Parameter request_id tidak terdefinisi'; |
ab5828535
|
42 |
res.json({ |
12f6d059c
|
43 |
httpgetx_xid: xid, |
ab5828535
|
44 |
error: true, |
732c359a7
|
45 |
message: msg, |
ab5828535
|
46 |
}); |
732c359a7
|
47 48 |
dumper(xid, req, msg); |
ab5828535
|
49 50 51 52 53 54 55 |
return; } const remoteIp = req.ip.replace(/^::ffff:/, ''); const askerTerminalName = `${req.body.terminal_name || req.query.terminal_name}@${remoteIp}`; const coreResponse = await coreapi({ |
12f6d059c
|
56 |
xid, |
ab5828535
|
57 58 59 60 61 62 63 64 65 66 |
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
|
67 68 |
logger.warn(`${MODULE_NAME} 9983DB34: ${msg}`, { xid, |
ab5828535
|
69 70 71 72 |
ip: req.ip, terminal_name: req.body.terminal_name || req.query.terminal_name, request_id: req.body.request_id || req.query.request_id, }); |
732c359a7
|
73 |
const responseBody = { |
12f6d059c
|
74 |
httpgetx_xid: xid, |
ab5828535
|
75 76 77 78 79 80 |
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
|
81 82 83 84 |
}; res.json(responseBody); dumper(xid, req, responseBody); |
ab5828535
|
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
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
|
108 |
const result = { |
12f6d059c
|
109 |
httpgetx_xid: xid, |
ab5828535
|
110 111 112 113 |
error: coreResponse.status !== 'OK', from_ip: remoteIp, terminal_name: req.body.terminal_name || req.query.terminal_name, full_terminal_name: askerTerminalName, |
ab5828535
|
114 |
message: coreResponse.message, |
29abebf10
|
115 |
trx_found: !!trx, |
ab5828535
|
116 117 |
trx, // original_trx: coreResponse.result, |
038a3f3ea
|
118 119 120 |
}; res.json(result); |
12f6d059c
|
121 122 123 124 125 |
logger.info(`${MODULE_NAME} 480C4BB0: Partner request responded`, { xid, processing_time_in_ms: new Date() - res.locals.x_http_request_ts, result, }); |
732c359a7
|
126 127 |
dumper(xid, req, result); |
ab5828535
|
128 129 130 |
} router.get('/', pageIndex); |