Jelajahi Sumber

log detailed json error internally

Alexander Belanger 4 tahun lalu
induk
melakukan
7ffd192f2f

+ 5 - 3
api/server/shared/apierrors/errors.go

@@ -3,6 +3,7 @@ package apierrors
 import (
 	"encoding/json"
 	"net/http"
+	"strings"
 
 	"github.com/porter-dev/porter/api/server/shared/config"
 	"github.com/porter-dev/porter/api/types"
@@ -68,10 +69,11 @@ func (e *ErrForbidden) GetStatusCode() int {
 type ErrPassThroughToClient struct {
 	err        error
 	statusCode int
+	errDetails []string
 }
 
-func NewErrPassThroughToClient(err error, statusCode int) RequestError {
-	return &ErrPassThroughToClient{err, statusCode}
+func NewErrPassThroughToClient(err error, statusCode int, details ...string) RequestError {
+	return &ErrPassThroughToClient{err, statusCode, details}
 }
 
 func (e *ErrPassThroughToClient) Error() string {
@@ -79,7 +81,7 @@ func (e *ErrPassThroughToClient) Error() string {
 }
 
 func (e *ErrPassThroughToClient) InternalError() string {
-	return e.err.Error()
+	return e.err.Error() + strings.Join(e.errDetails, ",")
 }
 
 func (e *ErrPassThroughToClient) ExternalError() string {

+ 1 - 1
api/server/shared/requestutils/decoder.go

@@ -70,7 +70,7 @@ func requestErrorFromJSONErr(err error) apierrors.RequestError {
 	} else if errors.As(err, &typeErr) {
 		clientErr = fmt.Errorf("Invalid type for body param %s: expected %s, got %s", typeErr.Field, typeErr.Type.Kind().String(), typeErr.Value)
 	} else {
-		clientErr = fmt.Errorf("Could not parse JSON request: %s", err.Error())
+		return apierrors.NewErrPassThroughToClient(fmt.Errorf("Could not parse JSON request"), http.StatusBadRequest, err.Error())
 	}
 
 	return apierrors.NewErrPassThroughToClient(clientErr, http.StatusBadRequest)

+ 1 - 1
api/server/shared/requestutils/decoder_test.go

@@ -32,7 +32,7 @@ type decoderTestObj struct {
 const (
 	jsonFieldErrFmt  = "Invalid type for body param %s: expected %s, got %s"
 	jsonSyntaxErrFmt = "JSON syntax error at character %d"
-	jsonGenericErr   = "Could not parse JSON request: unexpected EOF"
+	jsonGenericErr   = "Could not parse JSON request"
 )
 
 func getSuccessfulJSONBody() io.ReadCloser {