Commit 3950ebfdf1f89f9c2b2e3319d8591e0dad69a883

Authored by adi surya
1 parent 36643bcd72
Exists in master

parsing response dari sds ss

Showing 1 changed file with 15 additions and 7 deletions Inline Diff

lib/http-server/routers/updates/index.js
1 const MODULE_NAME = 'HTTP-SERVER.ROUTER.UPDATES'; 1 const MODULE_NAME = 'HTTP-SERVER.ROUTER.UPDATES';
2 2
3 const express = require('express'); 3 const express = require('express');
4 const axios = require('axios').default; 4 const axios = require('axios').default;
5 const logger = require('tektrans-logger'); 5 const logger = require('tektrans-logger');
6 6
7 const config = require('../../../config'); 7 const config = require('../../../config');
8 8
9 const router = express.Router(); 9 const router = express.Router();
10 10
11 module.exports = router; 11 module.exports = router;
12 12
13 const client = axios.create({ 13 const client = axios.create({
14 baseURL: config.core.url, 14 baseURL: config.core.url,
15 timeout: config.core.request_timeout_ms, 15 timeout: config.core.request_timeout_ms,
16 headers: { 16 headers: {
17 'x-access-token': config.core.access_token, 17 'x-access-token': config.core.access_token,
18 }, 18 },
19 }); 19 });
20 20
21 const pageUpdate = async (req, res) => { 21 const pageUpdate = async (req, res) => {
22 const { xid } = res.locals; 22 const { xid } = res.locals;
23 let data = req.query; 23 let data = req.query;
24 if (req.method.toUpperCase() !== 'GET') { 24 if (req.method.toUpperCase() !== 'GET') {
25 data = req.body; 25 data = req.body;
26 } 26 }
27 27
28 try { 28 try {
29 logger.verbose(`${MODULE_NAME} 9E5C70C8: update from sds`, { xid, data }); 29 logger.verbose(`${MODULE_NAME} 9E5C70C8: update from sds`, { xid, data });
30 const requestIds = data.trxid.split('-');
31 let trxId = '';
32 if (Array.isArray(requestIds) && requestIds.length > 0) {
33 trxId = requestIds[requestIds.length - 1];
34 }
35
36 let rc = '68';
37 if (data.status === 'S') {
38 rc = '00';
39 } else if (data.status === 'F' || data.status === 'R') {
40 rc = '40';
41 }
30 const params = { 42 const params = {
31 id: data.request_id, 43 id: trxId,
32 rc: data.rc, 44 rc,
33 amount: data.amount || null,
34 message: data.message, 45 message: data.message,
35 sn: data.sn || null, 46 sn: data.sn || null,
36 bill_count: data.bill_count, 47 related_data: JSON.stringify(data),
37 bill_amount: data.bill_amount,
38 related_data: null,
39 amount_to_charge: data.amount_to_charge,
40 }; 48 };
41 49
42 client.post('/transactions/gateway-update', params).then((result) => { 50 client.post('/transactions/gateway-update', params).then((result) => {
43 logger.verbose(`${MODULE_NAME} A8DA0D04: response from core2`, { 51 logger.verbose(`${MODULE_NAME} A8DA0D04: response from core2`, {
44 xid, 52 xid,
45 response: result.data, 53 response: result.data,
46 }); 54 });
47 }).catch((err) => { 55 }).catch((err) => {
48 logger.warn(`${MODULE_NAME} 32EB485C: Exception on request to core2`, { 56 logger.warn(`${MODULE_NAME} 32EB485C: Exception on request to core2`, {
49 xid, 57 xid,
50 eMessage: err.message, 58 eMessage: err.message,
51 eCode: err.code, 59 eCode: err.code,
52 }); 60 });
53 }); 61 });
54 62
55 res.json({ error: false, message: 'OK' }); 63 res.json({ error: false, message: 'OK' });
56 } catch (e) { 64 } catch (e) {
57 logger.warn(`${MODULE_NAME} B12B4A2C: Exception.`, { 65 logger.warn(`${MODULE_NAME} B12B4A2C: Exception.`, {
58 xid, eMessage: e.message, eCode: e.code, 66 xid, eMessage: e.message, eCode: e.code,
59 }); 67 });
60 res.status(500).json({ 68 res.status(500).json({
61 error: true, 69 error: true,
62 error_code: e.code, 70 error_code: e.code,
63 message: e.message, 71 message: e.message,
64 }); 72 });
65 } 73 }
66 }; 74 };