Commit 038a3f3ea67461759ee948f3786de02c5ffa21ff
1 parent
08c1ef883e
Exists in
master
and in
1 other branch
Log result
Showing 1 changed file with 6 additions and 2 deletions Inline Diff
lib/listener-partner/routers/trx-status.js
1 | 'use strict'; | 1 | 'use strict'; |
2 | 2 | ||
3 | const express = require('express'); | 3 | const express = require('express'); |
4 | const moment = require('moment'); | 4 | const moment = require('moment'); |
5 | 5 | ||
6 | const logger = require('komodo-sdk/logger'); | 6 | const logger = require('komodo-sdk/logger'); |
7 | 7 | ||
8 | const coreapi = require('../../coreapi'); | 8 | const coreapi = require('../../coreapi'); |
9 | 9 | ||
10 | const router = express.Router(); | 10 | const router = express.Router(); |
11 | module.exports = router; | 11 | module.exports = router; |
12 | 12 | ||
13 | async function pageIndex(req, res) { | 13 | async function pageIndex(req, res) { |
14 | if (!req.body) req.body = {}; | 14 | if (!req.body) req.body = {}; |
15 | 15 | ||
16 | if (!req.body.terminal_name && !req.query.terminal_name) { | 16 | if (!req.body.terminal_name && !req.query.terminal_name) { |
17 | res.json({ | 17 | res.json({ |
18 | error: 'Parameter terminal_name tidak terdefinisi', | 18 | error: 'Parameter terminal_name tidak terdefinisi', |
19 | }); | 19 | }); |
20 | return; | 20 | return; |
21 | } | 21 | } |
22 | 22 | ||
23 | if (!req.body.password && !req.query.password) { | 23 | if (!req.body.password && !req.query.password) { |
24 | res.json({ | 24 | res.json({ |
25 | error: true, | 25 | error: true, |
26 | message: 'Parameter password tidak terdefinisi', | 26 | message: 'Parameter password tidak terdefinisi', |
27 | }); | 27 | }); |
28 | return; | 28 | return; |
29 | } | 29 | } |
30 | 30 | ||
31 | if (!req.body.request_id && !req.query.request_id) { | 31 | if (!req.body.request_id && !req.query.request_id) { |
32 | res.json({ | 32 | res.json({ |
33 | error: true, | 33 | error: true, |
34 | message: 'Parameter request_id tidak terdefinisi', | 34 | message: 'Parameter request_id tidak terdefinisi', |
35 | }); | 35 | }); |
36 | return; | 36 | return; |
37 | } | 37 | } |
38 | 38 | ||
39 | const remoteIp = req.ip.replace(/^::ffff:/, ''); | 39 | const remoteIp = req.ip.replace(/^::ffff:/, ''); |
40 | const askerTerminalName = `${req.body.terminal_name || req.query.terminal_name}@${remoteIp}`; | 40 | const askerTerminalName = `${req.body.terminal_name || req.query.terminal_name}@${remoteIp}`; |
41 | 41 | ||
42 | const coreResponse = await coreapi({ | 42 | const coreResponse = await coreapi({ |
43 | xid: res.locals.xid, | 43 | xid: res.locals.xid, |
44 | path: '/trx-status/view', | 44 | path: '/trx-status/view', |
45 | qs: { | 45 | qs: { |
46 | asker_terminal_name: askerTerminalName, | 46 | asker_terminal_name: askerTerminalName, |
47 | asker_terminal_password: req.body.password || req.query.password, | 47 | asker_terminal_password: req.body.password || req.query.password, |
48 | request_id: req.body.request_id || req.query.request_id, | 48 | request_id: req.body.request_id || req.query.request_id, |
49 | }, | 49 | }, |
50 | }); | 50 | }); |
51 | 51 | ||
52 | if (!coreResponse || !coreResponse.status) { | 52 | if (!coreResponse || !coreResponse.status) { |
53 | const msg = 'Status transaksi tidak dapat diketahui karena suatu kesalahan pada sistem'; | 53 | const msg = 'Status transaksi tidak dapat diketahui karena suatu kesalahan pada sistem'; |
54 | 54 | ||
55 | logger.warn(msg, { | 55 | logger.warn(msg, { |
56 | xid: res.locals.xid, | 56 | xid: res.locals.xid, |
57 | ip: req.ip, | 57 | ip: req.ip, |
58 | terminal_name: req.body.terminal_name || req.query.terminal_name, | 58 | terminal_name: req.body.terminal_name || req.query.terminal_name, |
59 | request_id: req.body.request_id || req.query.request_id, | 59 | request_id: req.body.request_id || req.query.request_id, |
60 | }); | 60 | }); |
61 | 61 | ||
62 | res.json({ | 62 | res.json({ |
63 | error: true, | 63 | error: true, |
64 | from_ip: remoteIp, | 64 | from_ip: remoteIp, |
65 | terminal_name: req.body.terminal_name || req.query.terminal_name, | 65 | terminal_name: req.body.terminal_name || req.query.terminal_name, |
66 | full_terminal_name: askerTerminalName, | 66 | full_terminal_name: askerTerminalName, |
67 | password: req.body.password || req.query.password, | 67 | password: req.body.password || req.query.password, |
68 | message: msg, | 68 | message: msg, |
69 | }); | 69 | }); |
70 | return; | 70 | return; |
71 | } | 71 | } |
72 | 72 | ||
73 | const trx = coreResponse && coreResponse.result ? { | 73 | const trx = coreResponse && coreResponse.result ? { |
74 | id: coreResponse.result.id, | 74 | id: coreResponse.result.id, |
75 | request_id: coreResponse.result.request_id, | 75 | request_id: coreResponse.result.request_id, |
76 | store_id: coreResponse.result.store_id, | 76 | store_id: coreResponse.result.store_id, |
77 | store_name: coreResponse.result.store_name, | 77 | store_name: coreResponse.result.store_name, |
78 | terminal_id: coreResponse.result.terminal_id, | 78 | terminal_id: coreResponse.result.terminal_id, |
79 | terminal_name: coreResponse.result.terminal_name, | 79 | terminal_name: coreResponse.result.terminal_name, |
80 | 80 | ||
81 | created: moment(coreResponse.result.created).format('YYYY-MM-DD HH:mm:ss'), | 81 | created: moment(coreResponse.result.created).format('YYYY-MM-DD HH:mm:ss'), |
82 | modified: moment(coreResponse.result.modified).format('YYYY-MM-DD HH:mm:ss'), | 82 | modified: moment(coreResponse.result.modified).format('YYYY-MM-DD HH:mm:ss'), |
83 | 83 | ||
84 | product_name: coreResponse.result.product_name, | 84 | product_name: coreResponse.result.product_name, |
85 | destination: coreResponse.result.destination, | 85 | destination: coreResponse.result.destination, |
86 | amount: coreResponse.result.amount, | 86 | amount: coreResponse.result.amount, |
87 | ending_balance: coreResponse.result.ending_balance, | 87 | ending_balance: coreResponse.result.ending_balance, |
88 | rc: coreResponse.result.rc, | 88 | rc: coreResponse.result.rc, |
89 | message: coreResponse.result.reply_message, | 89 | message: coreResponse.result.reply_message, |
90 | sn: coreResponse.result.sn, | 90 | sn: coreResponse.result.sn, |
91 | } | 91 | } |
92 | : null; | 92 | : null; |
93 | 93 | ||
94 | res.json({ | 94 | const result = { |
95 | error: coreResponse.status !== 'OK', | 95 | error: coreResponse.status !== 'OK', |
96 | from_ip: remoteIp, | 96 | from_ip: remoteIp, |
97 | terminal_name: req.body.terminal_name || req.query.terminal_name, | 97 | terminal_name: req.body.terminal_name || req.query.terminal_name, |
98 | full_terminal_name: askerTerminalName, | 98 | full_terminal_name: askerTerminalName, |
99 | password: req.body.password || req.query.password, | 99 | password: req.body.password || req.query.password, |
100 | message: coreResponse.message, | 100 | message: coreResponse.message, |
101 | trx_found: Boolean(trx), | 101 | trx_found: Boolean(trx), |
102 | trx, | 102 | trx, |
103 | // original_trx: coreResponse.result, | 103 | // original_trx: coreResponse.result, |
104 | }); | 104 | }; |
105 | |||
106 | res.json(result); | ||
107 | |||
108 | logger.verbose('Partner request responded', { xid: res.locals.xid, result }); | ||
105 | } | 109 | } |
106 | 110 | ||
107 | router.get('/', pageIndex); | 111 | router.get('/', pageIndex); |
108 | 112 |