From ae566890d7b00355bb41ead28ecb86ffd2d13301 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <me@adhisimon.org> Date: Thu, 11 Jul 2024 23:29:12 +0700 Subject: [PATCH] Webhook support --- config.sample.json | 1 + lib/core-callback/sender.js | 15 +++++++++++++++ lib/partner-listener/routers/topup.js | 17 +++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/config.sample.json b/config.sample.json index 933c14f..56d3d9e 100644 --- a/config.sample.json +++ b/config.sample.json @@ -8,6 +8,7 @@ "partner": { "trust_proxy": ["loopback", "linklocal"], "port": 25614, + "# webhook": "http://PLEASE_CHANGE_ME/PLEASE_CHANGE_ME", "dump": false }, "core": { diff --git a/lib/core-callback/sender.js b/lib/core-callback/sender.js index 9595006..11ace1d 100644 --- a/lib/core-callback/sender.js +++ b/lib/core-callback/sender.js @@ -180,6 +180,21 @@ const sender = async (data, xid, retry) => { delete matrix.callback_sender.active_sending[xid]; } + if (config.listener.partner.webhook) { + try { + axios.post(config.listener.partner.webhook, { + webhookType: 'KOMODO-CENTER-HTTPGETX.CORE-CALLBACK', + body: params, + }); + } catch (e) { + logger.warn(`${MODULE_NAME} F722520A: Exception on calling webhook`, { + xid, + eCode: e.code, + eMessage: e.message || e.toString(), + }); + } + } + dumper( xid, isHttpPost ? 'POST' : 'GET', diff --git a/lib/partner-listener/routers/topup.js b/lib/partner-listener/routers/topup.js index 50683b3..ada11e4 100644 --- a/lib/partner-listener/routers/topup.js +++ b/lib/partner-listener/routers/topup.js @@ -1,6 +1,7 @@ const MODULE_NAME = 'PARTNER-LISTENER.ROUTER.TOPUP'; const express = require('express'); +const axios = require('axios'); const config = require('komodo-sdk/config'); const logger = require('tektrans-logger'); @@ -149,6 +150,22 @@ async function pageIndex(req, res) { }; res.json(responseToPartner); + + if (config.listener.partner.webhook) { + try { + axios.post(config.listener.partner.webhook, { + webhookType: 'KOMODO-CENTER-HTTPGETX.PARTNER-LISTENER.DIRECT-RESPONSE', + body: responseToPartner, + }); + } catch (e) { + logger.warn(`${MODULE_NAME} ECC37ECA: Exception on calling webhook`, { + xid, + eCode: e.code, + eMessage: e.message || e.toString(), + }); + } + } + dumper(xid, req, responseToPartner); } -- 1.9.0