From c3abfa51bad03af79474851527c1e8d10c9be839 Mon Sep 17 00:00:00 2001 From: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> Date: Mon, 17 Mar 2025 21:45:37 +0200 Subject: [PATCH] chore: stringify body for request interceptor/middleware (#20131) * chore: stringify body for request interceptor/middleware * rename jsonBody to jsonBodyString --- .../middleware/request-ids/request-id.interceptor.ts | 12 +++++++++++- .../middleware/request-ids/request-id.middleware.ts | 11 ++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/apps/api/v2/src/middleware/request-ids/request-id.interceptor.ts b/apps/api/v2/src/middleware/request-ids/request-id.interceptor.ts index d517afbfc0..20a14f60dd 100644 --- a/apps/api/v2/src/middleware/request-ids/request-id.interceptor.ts +++ b/apps/api/v2/src/middleware/request-ids/request-id.interceptor.ts @@ -21,13 +21,23 @@ export class ResponseInterceptor implements NestInterceptor { const { statusCode } = response; const responseTime = Date.now() - startTime; + let jsonBodyString = "{}"; + + try { + if (data && typeof data === "object") { + jsonBodyString = JSON.stringify(data); + } + } catch (err) { + this.logger.error("Could not parse request body"); + } + this.logger.log("Outgoing Response", { requestId, method, url, statusCode, responseTime, - responseBody: data, + responseBody: jsonBodyString, timestamp: new Date().toISOString(), }); }) diff --git a/apps/api/v2/src/middleware/request-ids/request-id.middleware.ts b/apps/api/v2/src/middleware/request-ids/request-id.middleware.ts index 1d52e18185..eb443adf1e 100644 --- a/apps/api/v2/src/middleware/request-ids/request-id.middleware.ts +++ b/apps/api/v2/src/middleware/request-ids/request-id.middleware.ts @@ -11,13 +11,22 @@ export class RequestIdMiddleware implements NestMiddleware { const requestId = uuid(); req.headers["X-Request-Id"] = requestId; const { method, headers, body: requestBody, baseUrl } = req; + let jsonBodyString = "{}"; + + try { + if (requestBody && typeof requestBody === "object") { + jsonBodyString = JSON.stringify(requestBody); + } + } catch (err) { + this.logger.error("Could not parse request body"); + } this.logger.log("Incoming Request", { requestId, method, url: baseUrl, headers: filterReqHeaders(headers), - requestBody, + requestBody: jsonBodyString, timestamp: new Date().toISOString(), });