Commit fcc793e8c34dddd9f9eb5aad3b504617d69ca8c2

Authored by adi surya
1 parent f12f9ab1df
Exists in master

update callback handler

Showing 1 changed file with 3 additions and 1 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('-'); 30 const requestIds = data.trxid.split('-');
31 let trxId = ''; 31 let trxId = '';
32 if (Array.isArray(requestIds) && requestIds.length > 0) { 32 if (Array.isArray(requestIds) && requestIds.length > 0) {
33 trxId = requestIds[requestIds.length - 1]; 33 trxId = requestIds[requestIds.length - 1];
34 } 34 }
35 35
36 let rc = '68'; 36 let rc = '68';
37 if (data.status === 'S') { 37 if (data.status === 'S') {
38 rc = '00'; 38 rc = '00';
39 } else if (data.status === 'F' || data.status === 'R') { 39 } else if (data.status === 'F') {
40 rc = '40'; 40 rc = '40';
41 } else if (data.status === 'R') {
42 rc = '47';
41 } 43 }
42 const params = { 44 const params = {
43 id: trxId, 45 id: trxId,
44 rc, 46 rc,
45 message: data.message, 47 message: data.message,
46 sn: data.sn || null, 48 sn: data.sn || null,
47 related_data: JSON.stringify(data), 49 related_data: JSON.stringify(data),
48 }; 50 };
49 51
50 client.post('/transactions/gateway-update', params).then((result) => { 52 client.post('/transactions/gateway-update', params).then((result) => {
51 logger.verbose(`${MODULE_NAME} A8DA0D04: response from core2`, { 53 logger.verbose(`${MODULE_NAME} A8DA0D04: response from core2`, {
52 xid, 54 xid,
53 response: result.data, 55 response: result.data,
54 }); 56 });
55 }).catch((err) => { 57 }).catch((err) => {
56 logger.warn(`${MODULE_NAME} 32EB485C: Exception on request to core2`, { 58 logger.warn(`${MODULE_NAME} 32EB485C: Exception on request to core2`, {
57 xid, 59 xid,
58 eMessage: err.message, 60 eMessage: err.message,
59 eCode: err.code, 61 eCode: err.code,
60 }); 62 });
61 }); 63 });
62 64
63 res.json({ error: false, message: 'OK' }); 65 res.json({ error: false, message: 'OK' });
64 } catch (e) { 66 } catch (e) {
65 logger.warn(`${MODULE_NAME} B12B4A2C: Exception.`, { 67 logger.warn(`${MODULE_NAME} B12B4A2C: Exception.`, {
66 xid, eMessage: e.message, eCode: e.code, 68 xid, eMessage: e.message, eCode: e.code,
67 }); 69 });
68 res.status(500).json({ 70 res.status(500).json({
69 error: true, 71 error: true,
70 error_code: e.code, 72 error_code: e.code,
71 message: e.message, 73 message: e.message,
72 }); 74 });
73 } 75 }
74 }; 76 };
75 77
76 router.get('/', pageUpdate); 78 router.get('/', pageUpdate);
77 router.post('/', [express.urlencoded({ extended: true }), express.json()], pageUpdate); 79 router.post('/', [express.urlencoded({ extended: true }), express.json()], pageUpdate);
78 80