package app import ( "go.uber.org/zap" "github.com/geo-platform/tenant-api/internal/shared/response" ) func normalizeMonitoringWorkerError(err error) error { if err == nil { return nil } if appErr, ok := err.(*response.AppError); ok { return appErr } return err } func monitoringWorkerErrorFields(err error) []zap.Field { normalized := normalizeMonitoringWorkerError(err) if normalized == nil { return nil } if appErr, ok := normalized.(*response.AppError); ok { fields := []zap.Field{ zap.String("error_code", appErr.Message), zap.Int("app_code", appErr.Code), } if appErr.Detail != "" { fields = append(fields, zap.String("detail", appErr.Detail)) } if appErr.Cause != nil { fields = append(fields, zap.Error(appErr.Cause)) } return fields } return []zap.Field{zap.Error(normalized)} } func MonitoringWorkerErrorFields(err error) []zap.Field { return monitoringWorkerErrorFields(err) }