From 93ea90c3e74bcad946be24858cc194a50a136809 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <adhisimon@gmail.com> Date: Mon, 31 May 2021 15:03:00 +0700 Subject: [PATCH] CALLBACK-SENDER: data for postpaid trx --- lib/core-callback/sender.js | 66 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 14 deletions(-) diff --git a/lib/core-callback/sender.js b/lib/core-callback/sender.js index 522efa4..0a0e3d6 100644 --- a/lib/core-callback/sender.js +++ b/lib/core-callback/sender.js @@ -1,15 +1,39 @@ -const MODULE_NAME = 'CORE-CALLBACK-SENDER'; -const MAX_RETRY = 10; -const SLEEP_BEFORE_RETRY_MS = 60 * 1000; +const MODULE_NAME = 'CORE-CALLBACK.SENDER'; const axios = require('axios').default; +const config = require('komodo-sdk/config'); const logger = require('komodo-sdk/logger'); +const HTTP_TIMEOUT = Number( + config.callback_sender && config.callback_sender.http_timeout_ms, +) || 30 * 1000; + +const SLEEP_BEFORE_RETRY_MS = Number( + config.callback_sender && config.callback_sender.sleep_before_retry_ms, +) || 10 * 1000; + +const MAX_RETRY = Number( + config.callback_sender && config.callback_sender.max_retry, +) || 10; + +logger.verbose(`${MODULE_NAME} 848B9104: Initialized`, { + HTTP_TIMEOUT, + SLEEP_BEFORE_RETRY_MS, + MAX_RETRY, +}); + const sleep = require('../sleep'); const urlConcatQs = require('../url-concat-qs'); const sender = async (data, xid, retry) => { - if (!data.reverse_url) return; + if (!data.reverse_url) { + logger.verbose(`${MODULE_NAME} C4FF18FB: Ignoring missing reverse url`, { + xid, + dataFromCore: data, + }); + + return; + } const params = { httpgetx_xid: xid, @@ -21,33 +45,47 @@ const sender = async (data, xid, retry) => { terminal_name: data.terminal_name, product_name: data.product_name, destination: data.destination, + rc: data.rc, sn: data.sn || undefined, amount: Number(data.amount) || undefined, ending_balance: Number(data.ending_balance) || undefined, + message: data.message, + + bill_count: Number(data.bill_count) || undefined, + bill_amount: Number(data.bill_amount) || undefined, + fee_per_bill: Number(data.fee) || undefined, + fee_total: Number(data.fee_total) || undefined, + + bill_detail: data.bill_detail || undefined, }; - if (data.command === 'INQUIRY' && Number(data.amount_to_charge)) { - params.amount_to_charge = Number(data.amount_to_charge); + if (data.command === 'INQUIRY' && data.amount_to_charge) { + params.amount_to_charge = data.amount_to_charge; } const fullUrl = urlConcatQs(data.reverse_url, params); - logger.info(`${MODULE_NAME} 8B6A4CEC: Sending CORE-CALLBACK to PARTNER`, { - xid, retry, params, fullUrl, + logger.info(`${MODULE_NAME} 8B6A4CEC: Sending to PARTNER`, { + xid, + retry, + fullUrl, }); try { - const result = await axios.get(data.reverse_url, { + const response = await axios.get(data.reverse_url, { params, - timeout: 60 * 1000, + timeout: HTTP_TIMEOUT, }); - logger.info(`${MODULE_NAME} 3641FBD7: CORE-CALLBACK has been sent to PARTNER successfully`, { - xid, retry, fullUrl, body: result && result.data, + logger.info(`${MODULE_NAME} 3641FBD7: Has been sent to PARTNER successfully`, { + xid, + retry, + httpStatus: response.status, + responseBody: response && response.data, }); } catch (e) { - logger.warn(`${MODULE_NAME} A1EC9E70: Failed on sending CORE-CALLBACK to PARTNER`, { + logger.warn(`${MODULE_NAME} A1EC9E70: Failed on sending to PARTNER`, { xid, retry, maxRetry: MAX_RETRY, @@ -56,7 +94,7 @@ const sender = async (data, xid, retry) => { reverseUrl: data.reverse_url, fullUrl, httpStatus: e.response && e.response.status, - body: e.response && e.response.data, + responseBody: e.response && e.response.data, }); if ((retry || 0) < MAX_RETRY) { -- 1.9.0