Commit f942a8afb48acd8115f0663751a32d6e3656459b

Authored by Adhidarma Hadiwinoto
1 parent 7c703aa6e6
Exists in master

Reorganize log on index.js

Showing 3 changed files with 55 additions and 32 deletions Side-by-side Diff

  1 +const MODULE_NAME = 'POSTPAID-SDK';
  2 +
1 3 const config = require('komodo-sdk/config');
2 4  
3 5 const DEFAULT_CORE_REQUEST_TIMEOUT = 15 * 1000;
4 6 const DEFAULT_SLEEP_AFTER_CORE_ERROR_MS = 3000;
  7 +const PULL_INTERVAL_MS = config.postpaid_pull_interval_ms || config.pull_interval_ms || 1000;
5 8  
6 9 const DEFAULT_CORE_AXIOS_CONFIG = {
7 10 headers: { 'Content-Type': 'application/json' },
... ... @@ -11,7 +14,7 @@ const DEFAULT_CORE_AXIOS_CONFIG = {
11 14 const GET_TASK_AXIOS_CONFIG = DEFAULT_CORE_AXIOS_CONFIG;
12 15  
13 16 const axios = require('axios').default;
14   -
  17 +const uniqid = require('uniqid');
15 18 const coreUrl = require('komodo-sdk/core-url');
16 19 const logger = require('tektrans-logger');
17 20 const report = require('./lib/report');
... ... @@ -22,14 +25,20 @@ let partner;
22 25 let first = true;
23 26 let coreIsHealthy = null;
24 27  
  28 +const CORE_ENDPOINT = `${coreUrl}/postpaid2/task`;
  29 +
25 30 function detectCoreStatusChange(isHealthy, url, err) {
26 31 if (coreIsHealthy !== isHealthy) {
27 32 coreIsHealthy = isHealthy;
28 33  
29 34 if (isHealthy) {
30   - logger.info('POSTPAID2-SDK: CORE is healthy now', { url, err: err && err.message });
  35 + logger.info(`${MODULE_NAME} D7F6DBE4: CORE is healthy now`, {
  36 + url, err: err && err.message,
  37 + });
31 38 } else {
32   - logger.warn('POSTPAID2-SDK: CORE is unhealthy now', { url, err: err && err.message });
  39 + logger.warn(`${MODULE_NAME} 460EC596: CORE is unhealthy now`, {
  40 + url, err: err && err.message,
  41 + });
33 42 }
34 43 }
35 44 }
... ... @@ -37,18 +46,13 @@ function detectCoreStatusChange(isHealthy, url, err) {
37 46 async function getTask() {
38 47 if (!partner) return null;
39 48  
40   - // if (skipNext > 0) {
41   - // skipNext -= 1;
42   - // return null;
43   - // }
  49 + const xid = uniqid();
44 50  
45 51 if (first) {
46 52 first = false;
47   - logger.verbose('POSTPAID2-SDK: first pull request to CORE');
  53 + logger.verbose(`${MODULE_NAME} 20A30442: First getTask pull request to CORE`, { xid });
48 54 }
49 55  
50   - const coreEndpoint = `${coreUrl}/postpaid2/task`;
51   -
52 56 const payload = {
53 57 handler: config.handler || config.handler_name,
54 58 products: config.products || [],
... ... @@ -57,19 +61,24 @@ async function getTask() {
57 61 let task;
58 62 try {
59 63 const result = await axios.post(
60   - coreEndpoint,
  64 + CORE_ENDPOINT,
61 65 payload,
62 66 GET_TASK_AXIOS_CONFIG,
63 67 );
64 68  
65   - if (!result || !result.data) throw new Error('POSTPAID2-SDK: Empty CORE response on pulling task. MARK-26F332C6');
66   - if (result && result.data && result.data.task && !result.data.task.postpaid) throw new Error('POSTPAID2-SDK: CORE returning non postpaid task on pulling task. MARK-B338CEF8');
  69 + if (!result || !result.data) {
  70 + throw new Error(`${MODULE_NAME} 26F332C6: Empty CORE response on pulling task`);
  71 + }
  72 +
  73 + if (result && result.data && result.data.task && !result.data.task.postpaid) {
  74 + throw new Error(`${MODULE_NAME} B338CEF8: CORE returning non postpaid task on pulling task`);
  75 + }
67 76  
68   - detectCoreStatusChange(true, coreEndpoint);
  77 + detectCoreStatusChange(true, CORE_ENDPOINT);
69 78 task = result.data.task;
70 79 } catch (e) {
71 80 // skipNext = 3;
72   - detectCoreStatusChange(false, coreEndpoint, e);
  81 + detectCoreStatusChange(false, CORE_ENDPOINT, e);
73 82 await sleep(DEFAULT_SLEEP_AFTER_CORE_ERROR_MS);
74 83 }
75 84  
... ... @@ -78,7 +87,7 @@ async function getTask() {
78 87 task.remote_product = ((config.remote_products || {})[task.product]) || task.product;
79 88 task.trx_id = Number(task.trx_id) + (config.sdk_trx_id_adder || 0);
80 89  
81   - logger.verbose('POSTPAID2-SDK: Got task from CORE on pulling task', { task });
  90 + logger.verbose(`${MODULE_NAME} 441E8C96: Got task from CORE on pulling task`, { xid, task });
82 91  
83 92 if (task.inquiry_only) {
84 93 if (typeof partner.inquiry === 'function') partner.inquiry(task);
... ... @@ -86,7 +95,7 @@ async function getTask() {
86 95 }
87 96  
88 97 if (typeof partner.pay === 'function') {
89   - partner.pay(task);
  98 + partner.pay(task, xid);
90 99 return task;
91 100 }
92 101  
... ... @@ -98,7 +107,7 @@ const getTaskLooper = async () => {
98 107  
99 108 setTimeout(() => {
100 109 getTaskLooper();
101   - }, config.postpaid_pull_interval_ms || config.pull_interval_ms || 1000);
  110 + }, PULL_INTERVAL_MS);
102 111 };
103 112  
104 113 exports.setPartner = (val) => {
... ... @@ -11,7 +11,8 @@
11 11 "dependencies": {
12 12 "axios": "^0.26.0",
13 13 "komodo-sdk": "^1.45.0",
14   - "tektrans-logger": "^1.2.4"
  14 + "tektrans-logger": "^1.2.4",
  15 + "uniqid": "^5.4.0"
15 16 },
16 17 "devDependencies": {
17 18 "eslint": "^8.9.0",
... ... @@ -2011,6 +2012,14 @@
2011 2012 "uuid": "^3.4.0"
2012 2013 }
2013 2014 },
  2015 + "node_modules/komodo-sdk/node_modules/uniqid": {
  2016 + "version": "4.1.1",
  2017 + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
  2018 + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
  2019 + "dependencies": {
  2020 + "macaddress": "^0.2.8"
  2021 + }
  2022 + },
2014 2023 "node_modules/kuler": {
2015 2024 "version": "2.0.0",
2016 2025 "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
... ... @@ -3159,12 +3168,9 @@
3159 3168 }
3160 3169 },
3161 3170 "node_modules/uniqid": {
3162   - "version": "4.1.1",
3163   - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
3164   - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
3165   - "dependencies": {
3166   - "macaddress": "^0.2.8"
3167   - }
  3171 + "version": "5.4.0",
  3172 + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-5.4.0.tgz",
  3173 + "integrity": "sha512-38JRbJ4Fj94VmnC7G/J/5n5SC7Ab46OM5iNtSstB/ko3l1b5g7ALt4qzHFgGciFkyiRNtDXtLNb+VsxtMSE77A=="
3168 3174 },
3169 3175 "node_modules/unpipe": {
3170 3176 "version": "1.0.0",
... ... @@ -4882,6 +4888,16 @@
4882 4888 "uniqid": "^4.1.1",
4883 4889 "url-join": "^4.0.1",
4884 4890 "uuid": "^3.4.0"
  4891 + },
  4892 + "dependencies": {
  4893 + "uniqid": {
  4894 + "version": "4.1.1",
  4895 + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
  4896 + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
  4897 + "requires": {
  4898 + "macaddress": "^0.2.8"
  4899 + }
  4900 + }
4885 4901 }
4886 4902 },
4887 4903 "kuler": {
... ... @@ -5749,12 +5765,9 @@
5749 5765 }
5750 5766 },
5751 5767 "uniqid": {
5752   - "version": "4.1.1",
5753   - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
5754   - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
5755   - "requires": {
5756   - "macaddress": "^0.2.8"
5757   - }
  5768 + "version": "5.4.0",
  5769 + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-5.4.0.tgz",
  5770 + "integrity": "sha512-38JRbJ4Fj94VmnC7G/J/5n5SC7Ab46OM5iNtSstB/ko3l1b5g7ALt4qzHFgGciFkyiRNtDXtLNb+VsxtMSE77A=="
5758 5771 },
5759 5772 "unpipe": {
5760 5773 "version": "1.0.0",
... ... @@ -23,7 +23,8 @@
23 23 "dependencies": {
24 24 "axios": "^0.26.0",
25 25 "komodo-sdk": "^1.45.0",
26   - "tektrans-logger": "^1.2.4"
  26 + "tektrans-logger": "^1.2.4",
  27 + "uniqid": "^5.4.0"
27 28 },
28 29 "devDependencies": {
29 30 "eslint": "^8.9.0",