From 840acca7feab4f600a2dd5eeabbc39c3fa1a0d83 Mon Sep 17 00:00:00 2001 From: hanif salafi Date: Sun, 12 Oct 2025 17:18:54 +0700 Subject: [PATCH] fix: pdate audit trails exclude --- app/middleware/audit_trails.middleware.go | 27 ++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/app/middleware/audit_trails.middleware.go b/app/middleware/audit_trails.middleware.go index a985fb0..5d42251 100644 --- a/app/middleware/audit_trails.middleware.go +++ b/app/middleware/audit_trails.middleware.go @@ -2,19 +2,31 @@ package middleware import ( "encoding/json" - "github.com/gofiber/fiber/v2" - "gorm.io/gorm" "log" "netidhub-saas-be/app/database/entity" utilSvc "netidhub-saas-be/utils/service" "strings" "time" + + "github.com/gofiber/fiber/v2" + "gorm.io/gorm" ) func AuditTrailsMiddleware(db *gorm.DB) fiber.Handler { return func(c *fiber.Ctx) error { start := time.Now() - requestBody := c.Body() + + // Get content type to determine if we should store request/response body + contentType := c.Get("Content-Type") + isJSONContent := strings.Contains(strings.ToLower(contentType), "application/json") + + var requestBody string + var responseBody string + + // Only store request body for JSON content types + if isJSONContent { + requestBody = string(c.Body()) + } headersMap := c.GetReqHeaders() headersJSON, _ := json.Marshal(headersMap) @@ -24,6 +36,11 @@ func AuditTrailsMiddleware(db *gorm.DB) fiber.Handler { err := c.Next() + // Only store response body for JSON content types + if isJSONContent { + responseBody = string(c.Response().Body()) + } + audit := entity.AuditTrails{ Method: c.Method(), Path: c.OriginalURL(), @@ -31,8 +48,8 @@ func AuditTrailsMiddleware(db *gorm.DB) fiber.Handler { Status: c.Response().StatusCode(), UserID: userId, RequestHeaders: string(headersJSON), - RequestBody: string(requestBody), - ResponseBody: string(c.Response().Body()), + RequestBody: requestBody, + ResponseBody: responseBody, DurationMs: time.Since(start).Milliseconds(), CreatedAt: time.Now(), }