From e7be7272951c1995e21b1734831ec447c1a2d79d Mon Sep 17 00:00:00 2001
From: Adhidarma Hadiwinoto <adhisimon@gmail.com>
Date: Tue, 8 Feb 2022 12:34:11 +0700
Subject: [PATCH] Fix sdk_trx_id_adder on push task

---
 lib/client/push-task-prepaid.js | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/lib/client/push-task-prepaid.js b/lib/client/push-task-prepaid.js
index 8520543..c1bd08b 100644
--- a/lib/client/push-task-prepaid.js
+++ b/lib/client/push-task-prepaid.js
@@ -21,6 +21,8 @@ const pusher = (xid, task, gwName, retry) => {
      */
     const ws = wsList[gwName];
 
+    const senderName = config.handler_name;
+
     if (!ws) {
         logger.verbose(`${MODULE_NAME} 7EB181CF: Invalid websocket`, {
             xid,
@@ -42,7 +44,7 @@ const pusher = (xid, task, gwName, retry) => {
                     xid,
                     'KOMODO-SDK-PUSH-TRX': {
                         msg: 'B7B937A2 Invalid websocket on pushing to related gateway, will retry',
-                        gwOrigin: config.partner.handler_name,
+                        gwOrigin: senderName,
                         gwTarget: gwName,
                         retried: retry || 0,
                     },
@@ -70,7 +72,7 @@ const pusher = (xid, task, gwName, retry) => {
                     xid,
                     'KOMODO-SDK-PUSH-TRX': {
                         msg: '7151F200 Invalid websocket on pushing to related gateway, retry exceeded',
-                        gwOrigin: config.partner.handler_name,
+                        gwOrigin: senderName,
                         gwTarget: gwName,
                         retried: retry || 0,
                     },
@@ -93,18 +95,31 @@ const pusher = (xid, task, gwName, retry) => {
             xid,
             'KOMODO-SDK-PUSH-TRX': {
                 msg: pushReportMsg,
-                gwOrigin: config.partner.handler_name,
+                gwOrigin: senderName,
                 gwTarget: gwName,
             },
         },
     });
 
+    const newTask = JSON.parse(JSON.stringify(task));
+    const sdkTrxIdAdder = Number(config.sdk_trx_id_adder);
+    if (sdkTrxIdAdder) {
+        const newTrxId = Number(newTask.trx_id) - sdkTrxIdAdder;
+        logger.verbose(`${MODULE_NAME} 94669AEA: Reverting trx id to original`, {
+            xid,
+            currentTrxId: newTask.trx_id,
+            newTrxId,
+        });
+
+        newTask.trx_id = newTrxId;
+    }
+
     ws.send(JSON.stringify({
         type: 'TASK',
         ts: new Date(),
         rid: xid || uniqid(),
-        senderName: config.handler_name,
-        payload: task,
+        senderName,
+        payload: newTask,
     }));
 
     logger.verbose(`${MODULE_NAME} 7D3CECCA: Task pushed`, { xid, gwName });
-- 
1.9.0