Commit f942a8afb48acd8115f0663751a32d6e3656459b
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
index.js
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) => { |
package-lock.json
... | ... | @@ -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", |
package.json