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