From f5151eb21405d2357402e3c4f61bc3b5a8fd09c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Schw=C3=B6rer?= Date: Mon, 24 Jul 2023 11:38:57 +0200 Subject: [PATCH] v0.0.193 --- exerr/errinit.go | 24 ++++++++++++------------ exerr/gin.go | 32 ++++++++++++++++---------------- goextVersion.go | 4 ++-- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/exerr/errinit.go b/exerr/errinit.go index 382dd81..6c85760 100644 --- a/exerr/errinit.go +++ b/exerr/errinit.go @@ -6,12 +6,12 @@ import ( ) type ErrorPackageConfig struct { - ZeroLogErrTraces bool // autom print zerolog logs on .Build() (for SevErr and SevFatal) - ZeroLogAllTraces bool // autom print zerolog logs on .Build() (for all Severities) - RecursiveErrors bool // errors contains their Origin-Error - ExtendedGinOutput bool // Log extended data (trace, meta, ...) to gin in err.Output() - ExtendGinOutput func(json map[string]any) // (Optionally) extend the gin output with more fields - ExtendGinDataOutput func(json map[string]any) // (Optionally) extend the gin `__data` output with more fields + ZeroLogErrTraces bool // autom print zerolog logs on .Build() (for SevErr and SevFatal) + ZeroLogAllTraces bool // autom print zerolog logs on .Build() (for all Severities) + RecursiveErrors bool // errors contains their Origin-Error + ExtendedGinOutput bool // Log extended data (trace, meta, ...) to gin in err.Output() + ExtendGinOutput func(err *ExErr, json map[string]any) // (Optionally) extend the gin output with more fields + ExtendGinDataOutput func(err *ExErr, depth int, json map[string]any) // (Optionally) extend the gin `__data` output with more fields } type ErrorPackageConfigInit struct { @@ -19,8 +19,8 @@ type ErrorPackageConfigInit struct { ZeroLogAllTraces bool RecursiveErrors bool ExtendedGinOutput bool - ExtendGinOutput *func(json map[string]any) - ExtendGinDataOutput *func(json map[string]any) + ExtendGinOutput *func(err *ExErr, json map[string]any) + ExtendGinDataOutput *func(err *ExErr, depth int, json map[string]any) } var initialized = false @@ -30,8 +30,8 @@ var pkgconfig = ErrorPackageConfig{ ZeroLogAllTraces: false, RecursiveErrors: true, ExtendedGinOutput: false, - ExtendGinOutput: func(json map[string]any) {}, - ExtendGinDataOutput: func(json map[string]any) {}, + ExtendGinOutput: func(err *ExErr, json map[string]any) {}, + ExtendGinDataOutput: func(err *ExErr, depth int, json map[string]any) {}, } // Init initializes the exerr packages @@ -47,8 +47,8 @@ func Init(cfg ErrorPackageConfigInit) { ZeroLogAllTraces: cfg.ZeroLogAllTraces, RecursiveErrors: cfg.RecursiveErrors, ExtendedGinOutput: cfg.ExtendedGinOutput, - ExtendGinOutput: langext.Coalesce(cfg.ExtendGinOutput, func(json map[string]any) {}), - ExtendGinDataOutput: langext.Coalesce(cfg.ExtendGinDataOutput, func(json map[string]any) {}), + ExtendGinOutput: langext.Coalesce(cfg.ExtendGinOutput, func(err *ExErr, json map[string]any) {}), + ExtendGinDataOutput: langext.Coalesce(cfg.ExtendGinDataOutput, func(err *ExErr, depth int, json map[string]any) {}), } initialized = true diff --git a/exerr/gin.go b/exerr/gin.go index a054838..6bbe184 100644 --- a/exerr/gin.go +++ b/exerr/gin.go @@ -7,43 +7,43 @@ import ( "time" ) -func (ee *ExErr) toJson() gin.H { - json := gin.H{} +func (ee *ExErr) toJson(depth int) gin.H { + ginJson := gin.H{} if ee.UniqueID != "" { - json["id"] = ee.UniqueID + ginJson["id"] = ee.UniqueID } if ee.Category != CatWrap { - json["category"] = ee.Category + ginJson["category"] = ee.Category } if ee.Type != TypeWrap { - json["type"] = ee.Type + ginJson["type"] = ee.Type } if ee.StatusCode != nil { - json["statuscode"] = ee.StatusCode + ginJson["statuscode"] = ee.StatusCode } if ee.Message != "" { - json["message"] = ee.Message + ginJson["message"] = ee.Message } if ee.Caller != "" { - json["caller"] = ee.Caller + ginJson["caller"] = ee.Caller } if ee.Severity != SevErr { - json["severity"] = ee.Severity + ginJson["severity"] = ee.Severity } if ee.Timestamp != (time.Time{}) { - json["time"] = ee.Timestamp.Format(time.RFC3339) + ginJson["time"] = ee.Timestamp.Format(time.RFC3339) } if ee.WrappedErrType != "" { - json["wrappedErrType"] = ee.WrappedErrType + ginJson["wrappedErrType"] = ee.WrappedErrType } if ee.OriginalError != nil { - json["original"] = ee.OriginalError.toJson() + ginJson["original"] = ee.OriginalError.toJson(depth + 1) } - pkgconfig.ExtendGinDataOutput(json) + pkgconfig.ExtendGinDataOutput(ee, depth, ginJson) - return json + return ginJson } func (ee *ExErr) Output(g *gin.Context) { @@ -75,10 +75,10 @@ func (ee *ExErr) Output(g *gin.Context) { } if pkgconfig.ExtendedGinOutput { - ginOutput["__data"] = ee.toJson() + ginOutput["__data"] = ee.toJson(0) } - pkgconfig.ExtendGinOutput(ginOutput) + pkgconfig.ExtendGinOutput(ee, ginOutput) g.Render(statuscode, json.GoJsonRender{Data: ginOutput, NilSafeSlices: true, NilSafeMaps: true}) } diff --git a/goextVersion.go b/goextVersion.go index a660712..1681a20 100644 --- a/goextVersion.go +++ b/goextVersion.go @@ -1,5 +1,5 @@ package goext -const GoextVersion = "0.0.192" +const GoextVersion = "0.0.193" -const GoextVersionTimestamp = "2023-07-24T11:30:07+0200" +const GoextVersionTimestamp = "2023-07-24T11:38:57+0200"