From 9e3825e98ce0e28afdf8b0c4f74f4cb84c634c30 Mon Sep 17 00:00:00 2001
From: Johan de Klerk <johan@shiplogic.com>
Date: Tue, 31 Oct 2023 13:56:31 +0200
Subject: [PATCH] Added GenericJSONResponseWithMessage

---
 api_responses/api_responses.go | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/api_responses/api_responses.go b/api_responses/api_responses.go
index bb2810a..bd6d4de 100644
--- a/api_responses/api_responses.go
+++ b/api_responses/api_responses.go
@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/errors"
 	"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/map_utils"
+	"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/string_utils"
 	"net/http"
 	"regexp"
 	"strconv"
@@ -266,3 +267,27 @@ func GenericJSONResponseWithContentAndHeaders(code int, content string, headers
 	}
 	return response
 }
+
+func GenericJSONResponseWithMessage(code int, err error) events.APIGatewayProxyResponse {
+	var message string
+	var body map[string]string
+
+	if err != nil {
+		customErr := err.(*errors.CustomError)
+		message = customErr.Formatted(errors.FormattingOptions{NewLines: false, Causes: true})
+		body = map[string]string{
+			"message": string_utils.Capitalize(message),
+		}
+	}
+
+	responseBody := message
+	if bodyBytes, err := json.Marshal(body); err == nil {
+		responseBody = string(bodyBytes)
+	}
+
+	return events.APIGatewayProxyResponse{
+		StatusCode: code,
+		Body:       responseBody,
+		Headers:    map_utils.MergeMaps(utils.CorsHeaders(), ContentTypeJSONHeader),
+	}
+}
-- 
GitLab