From 704d75596debd36a190981cb84437f7184acc4b0 Mon Sep 17 00:00:00 2001 From: Matt Hook Date: Wed, 21 Feb 2024 07:51:29 +1300 Subject: [PATCH] fix(libhttp): capitalize http error responses for better display [EE-6698] (#11109) --- pkg/libhttp/error/error.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pkg/libhttp/error/error.go b/pkg/libhttp/error/error.go index a7b307198..36ea02071 100644 --- a/pkg/libhttp/error/error.go +++ b/pkg/libhttp/error/error.go @@ -4,6 +4,7 @@ package error import ( "errors" "net/http" + "unicode" "github.com/rs/zerolog/log" "github.com/segmentio/encoding/json" @@ -26,9 +27,19 @@ func (handler LoggerHandler) ServeHTTP(rw http.ResponseWriter, r *http.Request) } } +func capitalize(s string) string { + if len(s) == 0 { + return s + } + + // Capitalize the first letter of the word or sentence + firstLetter := unicode.ToUpper(rune(s[0])) + return string(firstLetter) + s[1:] +} + func writeErrorResponse(rw http.ResponseWriter, err *HandlerError) { if err.Err == nil { - err.Err = errors.New(err.Message) + err.Err = errors.New(capitalize(err.Message)) } log.Debug().CallerSkipFrame(2).Err(err.Err).Int("status_code", err.StatusCode).Str("msg", err.Message).Msg("HTTP error") @@ -40,7 +51,7 @@ func writeErrorResponse(rw http.ResponseWriter, err *HandlerError) { enc.SetSortMapKeys(false) enc.SetAppendNewline(false) - enc.Encode(&errorResponse{Message: err.Message, Details: err.Err.Error()}) + enc.Encode(&errorResponse{Message: err.Message, Details: capitalize(err.Err.Error())}) } // WriteError is a convenience function that creates a new HandlerError before calling writeErrorResponse.