From e04829b3846a48445787b300be1f7508771ae5a2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?France=CC=81=20Wilke?= <francewilke@gmail.com>
Date: Mon, 20 Dec 2021 10:46:15 +0200
Subject: [PATCH] Always truncate the response body

---
 api_logs/api-logs.go | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/api_logs/api-logs.go b/api_logs/api-logs.go
index 28ddac5..c1d5254 100644
--- a/api_logs/api-logs.go
+++ b/api_logs/api-logs.go
@@ -3,7 +3,6 @@ package api_logs
 import (
 	"github.com/thoas/go-funk"
 	"gitlab.com/uafrica/go-utils/string_utils"
-	"net/http"
 	"net/url"
 	"strings"
 	"time"
@@ -19,13 +18,10 @@ func GenerateIncomingAPILog(startTime time.Time, requestID *string, claim map[st
 		currentRequestID = *requestID
 	}
 
-	// Truncate response body for incoming GET requests
+	// SQS has a 256KB limit, so let's limit the response to 96KB
 	responseBody := res.Body
-	if req.HTTPMethod == http.MethodGet {
-		// SQS has a 256KB limit, so let's limit the response to 96KB
-		if len(responseBody) > 12000 {
-			responseBody = responseBody[:12000] + "..."
-		}
+	if len(responseBody) > 12000 {
+		responseBody = responseBody[:12000] + "..."
 	}
 
 	var authType string
@@ -117,6 +113,12 @@ func GenerateOutgoingAPILog(startTime time.Time, requestID *string, claim map[st
 		currentRequestID = *requestID
 	}
 
+	// SQS has a 256KB limit, so let's limit the response to 96KB
+	originalResponseBody := responseBody
+	if len(responseBody) > 12000 {
+		responseBody = responseBody[:12000] + "..."
+	}
+
 	userID, _ := claim["UserID"].(int64)
 	username, _ := claim["Username"].(string)
 	accountID, _ := claim["AccountID"].(int64)
@@ -157,7 +159,7 @@ func GenerateOutgoingAPILog(startTime time.Time, requestID *string, claim map[st
 		},
 		Response: ApiLogResponse{
 			Headers:  requestHeaders,
-			BodySize: len(responseBody),
+			BodySize: len(originalResponseBody),
 			Body:     responseBody,
 		},
 	}
-- 
GitLab