Blame view
lib/listener-partner/routers/trx-status.js
3.51 KB
ab5828535
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
'use strict'; const express = require('express'); const moment = require('moment'); const logger = require('komodo-sdk/logger'); const coreapi = require('../../coreapi'); const router = express.Router(); module.exports = router; async function pageIndex(req, res) { if (!req.body) req.body = {}; if (!req.body.terminal_name && !req.query.terminal_name) { res.json({ error: 'Parameter terminal_name tidak terdefinisi', }); return; } if (!req.body.password && !req.query.password) { res.json({ error: true, message: 'Parameter password tidak terdefinisi', }); return; } if (!req.body.request_id && !req.query.request_id) { res.json({ error: true, message: 'Parameter request_id tidak terdefinisi', }); return; } const remoteIp = req.ip.replace(/^::ffff:/, ''); const askerTerminalName = `${req.body.terminal_name || req.query.terminal_name}@${remoteIp}`; const coreResponse = await coreapi({ xid: res.locals.xid, 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'; logger.warn(msg, { xid: res.locals.xid, ip: req.ip, terminal_name: req.body.terminal_name || req.query.terminal_name, request_id: req.body.request_id || req.query.request_id, }); res.json({ 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, }); 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
|
93 |
const result = { |
ab5828535
|
94 95 96 97 98 99 100 101 102 |
error: coreResponse.status !== 'OK', 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: coreResponse.message, trx_found: Boolean(trx), trx, // original_trx: coreResponse.result, |
038a3f3ea
|
103 104 105 |
}; res.json(result); |
c98ae8750
|
106 |
logger.verbose('Partner request responded', { xid: res.locals.xid, processing_time_in_ms: new Date() - res.locals.x_http_request_ts, result }); |
ab5828535
|
107 108 109 |
} router.get('/', pageIndex); |