From 15d2aafc81832b46d7850602adef388c0ad15da3 Mon Sep 17 00:00:00 2001
From: Adhidarma Hadiwinoto <adhisimon@gmail.com>
Date: Mon, 14 Nov 2022 15:03:50 +0700
Subject: [PATCH] Callback apikey debug

---
 lib/callback/apikey-checker.js | 31 +++++++++++++++++++++++++++++--
 1 file changed, 29 insertions(+), 2 deletions(-)

diff --git a/lib/callback/apikey-checker.js b/lib/callback/apikey-checker.js
index 07938c3..2398724 100644
--- a/lib/callback/apikey-checker.js
+++ b/lib/callback/apikey-checker.js
@@ -3,6 +3,8 @@ const MODULE_NAME = 'CALLBACK.APIKEY-CHECKER';
 const config = require('komodo-sdk/config');
 const logger = require('tektrans-logger');
 
+const { DEBUG_CALLBACK_APIKEY } = process.env;
+
 const sendInvalidApikeyResponse = (xid, res) => {
     res.status(403).json({
         status: 'NOT-OK',
@@ -17,19 +19,38 @@ if (!config.partner.callback.apikey) {
 }
 
 module.exports = (req, res, next) => {
+    const { xid } = res.locals;
+    const apikeyFromRequest = req.params.apikey;
+
     if (!config.partner || !config.partner.callback || !config.partner.callback.apikey) {
+        if (DEBUG_CALLBACK_APIKEY) {
+            logger.verbose(`${MODULE_NAME} 8BE57EB4: Skip APIKEY checker on no config`, {
+                xid,
+            });
+        }
         next();
         return;
     }
 
-    const { xid } = res.locals;
-    const apikeyFromRequest = req.params.apikey;
+    if (DEBUG_CALLBACK_APIKEY) {
+        logger.verbose(`${MODULE_NAME} 1A634029: Checking for apikey validity`, {
+            xid,
+            apikeyFromRequest,
+        });
+    }
 
     if (
         typeof config.partner.callback.apikey === 'object'
         && Array.isArray(config.partner.callback.apikey)
         && config.partner.callback.apikey.indexOf(apikeyFromRequest) >= 0
     ) {
+        if (DEBUG_CALLBACK_APIKEY) {
+            logger.verbose(`${MODULE_NAME} 4BC7B45D: Apikey match with one of array element`, {
+                xid,
+                apikeyFromRequest,
+            });
+        }
+
         next();
         return;
     }
@@ -38,6 +59,12 @@ module.exports = (req, res, next) => {
         typeof config.partner.callback.apikey === 'string'
         && config.partner.callback.apikey === apikeyFromRequest
     ) {
+        if (DEBUG_CALLBACK_APIKEY) {
+            logger.verbose(`${MODULE_NAME} FC80DC85: Apikey match with string config`, {
+                xid,
+                apikeyFromRequest,
+            });
+        }
         next();
         return;
     }
-- 
1.9.0