From f942a8afb48acd8115f0663751a32d6e3656459b Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <adhisimon@gmail.com> Date: Wed, 23 Feb 2022 16:17:40 +0700 Subject: [PATCH] Reorganize log on index.js --- index.js | 45 +++++++++++++++++++++++++++------------------ package-lock.json | 39 ++++++++++++++++++++++++++------------- package.json | 3 ++- 3 files changed, 55 insertions(+), 32 deletions(-) diff --git a/index.js b/index.js index f91184d..272ad78 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,10 @@ +const MODULE_NAME = 'POSTPAID-SDK'; + const config = require('komodo-sdk/config'); const DEFAULT_CORE_REQUEST_TIMEOUT = 15 * 1000; const DEFAULT_SLEEP_AFTER_CORE_ERROR_MS = 3000; +const PULL_INTERVAL_MS = config.postpaid_pull_interval_ms || config.pull_interval_ms || 1000; const DEFAULT_CORE_AXIOS_CONFIG = { headers: { 'Content-Type': 'application/json' }, @@ -11,7 +14,7 @@ const DEFAULT_CORE_AXIOS_CONFIG = { const GET_TASK_AXIOS_CONFIG = DEFAULT_CORE_AXIOS_CONFIG; const axios = require('axios').default; - +const uniqid = require('uniqid'); const coreUrl = require('komodo-sdk/core-url'); const logger = require('tektrans-logger'); const report = require('./lib/report'); @@ -22,14 +25,20 @@ let partner; let first = true; let coreIsHealthy = null; +const CORE_ENDPOINT = `${coreUrl}/postpaid2/task`; + function detectCoreStatusChange(isHealthy, url, err) { if (coreIsHealthy !== isHealthy) { coreIsHealthy = isHealthy; if (isHealthy) { - logger.info('POSTPAID2-SDK: CORE is healthy now', { url, err: err && err.message }); + logger.info(`${MODULE_NAME} D7F6DBE4: CORE is healthy now`, { + url, err: err && err.message, + }); } else { - logger.warn('POSTPAID2-SDK: CORE is unhealthy now', { url, err: err && err.message }); + logger.warn(`${MODULE_NAME} 460EC596: CORE is unhealthy now`, { + url, err: err && err.message, + }); } } } @@ -37,18 +46,13 @@ function detectCoreStatusChange(isHealthy, url, err) { async function getTask() { if (!partner) return null; - // if (skipNext > 0) { - // skipNext -= 1; - // return null; - // } + const xid = uniqid(); if (first) { first = false; - logger.verbose('POSTPAID2-SDK: first pull request to CORE'); + logger.verbose(`${MODULE_NAME} 20A30442: First getTask pull request to CORE`, { xid }); } - const coreEndpoint = `${coreUrl}/postpaid2/task`; - const payload = { handler: config.handler || config.handler_name, products: config.products || [], @@ -57,19 +61,24 @@ async function getTask() { let task; try { const result = await axios.post( - coreEndpoint, + CORE_ENDPOINT, payload, GET_TASK_AXIOS_CONFIG, ); - if (!result || !result.data) throw new Error('POSTPAID2-SDK: Empty CORE response on pulling task. MARK-26F332C6'); - 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'); + if (!result || !result.data) { + throw new Error(`${MODULE_NAME} 26F332C6: Empty CORE response on pulling task`); + } + + if (result && result.data && result.data.task && !result.data.task.postpaid) { + throw new Error(`${MODULE_NAME} B338CEF8: CORE returning non postpaid task on pulling task`); + } - detectCoreStatusChange(true, coreEndpoint); + detectCoreStatusChange(true, CORE_ENDPOINT); task = result.data.task; } catch (e) { // skipNext = 3; - detectCoreStatusChange(false, coreEndpoint, e); + detectCoreStatusChange(false, CORE_ENDPOINT, e); await sleep(DEFAULT_SLEEP_AFTER_CORE_ERROR_MS); } @@ -78,7 +87,7 @@ async function getTask() { task.remote_product = ((config.remote_products || {})[task.product]) || task.product; task.trx_id = Number(task.trx_id) + (config.sdk_trx_id_adder || 0); - logger.verbose('POSTPAID2-SDK: Got task from CORE on pulling task', { task }); + logger.verbose(`${MODULE_NAME} 441E8C96: Got task from CORE on pulling task`, { xid, task }); if (task.inquiry_only) { if (typeof partner.inquiry === 'function') partner.inquiry(task); @@ -86,7 +95,7 @@ async function getTask() { } if (typeof partner.pay === 'function') { - partner.pay(task); + partner.pay(task, xid); return task; } @@ -98,7 +107,7 @@ const getTaskLooper = async () => { setTimeout(() => { getTaskLooper(); - }, config.postpaid_pull_interval_ms || config.pull_interval_ms || 1000); + }, PULL_INTERVAL_MS); }; exports.setPartner = (val) => { diff --git a/package-lock.json b/package-lock.json index 08a48bb..90a2484 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,8 @@ "dependencies": { "axios": "^0.26.0", "komodo-sdk": "^1.45.0", - "tektrans-logger": "^1.2.4" + "tektrans-logger": "^1.2.4", + "uniqid": "^5.4.0" }, "devDependencies": { "eslint": "^8.9.0", @@ -2011,6 +2012,14 @@ "uuid": "^3.4.0" } }, + "node_modules/komodo-sdk/node_modules/uniqid": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", + "dependencies": { + "macaddress": "^0.2.8" + } + }, "node_modules/kuler": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", @@ -3159,12 +3168,9 @@ } }, "node_modules/uniqid": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", - "dependencies": { - "macaddress": "^0.2.8" - } + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-5.4.0.tgz", + "integrity": "sha512-38JRbJ4Fj94VmnC7G/J/5n5SC7Ab46OM5iNtSstB/ko3l1b5g7ALt4qzHFgGciFkyiRNtDXtLNb+VsxtMSE77A==" }, "node_modules/unpipe": { "version": "1.0.0", @@ -4882,6 +4888,16 @@ "uniqid": "^4.1.1", "url-join": "^4.0.1", "uuid": "^3.4.0" + }, + "dependencies": { + "uniqid": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", + "requires": { + "macaddress": "^0.2.8" + } + } } }, "kuler": { @@ -5749,12 +5765,9 @@ } }, "uniqid": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", - "requires": { - "macaddress": "^0.2.8" - } + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-5.4.0.tgz", + "integrity": "sha512-38JRbJ4Fj94VmnC7G/J/5n5SC7Ab46OM5iNtSstB/ko3l1b5g7ALt4qzHFgGciFkyiRNtDXtLNb+VsxtMSE77A==" }, "unpipe": { "version": "1.0.0", diff --git a/package.json b/package.json index aaae7a0..722d644 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,8 @@ "dependencies": { "axios": "^0.26.0", "komodo-sdk": "^1.45.0", - "tektrans-logger": "^1.2.4" + "tektrans-logger": "^1.2.4", + "uniqid": "^5.4.0" }, "devDependencies": { "eslint": "^8.9.0", -- 1.9.0