produce payload object from JSON
This commit is contained in:
		
							parent
							
								
									b4d9338353
								
							
						
					
					
						commit
						31bdedc031
					
				
					 5 changed files with 22 additions and 4 deletions
				
			
		|  | @ -92,12 +92,23 @@ type payload struct { | ||||||
| 	data interface{} | 	data interface{} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (pl payload) String() string { | func (pl *payload) String() string { | ||||||
| 	b, err := json.Marshal(pl.data) | 	b, err := json.Marshal(pl.data) | ||||||
| 	log.Err(err) | 	if err != nil { | ||||||
|  | 		log.Error().Err(err).Msg("payload.String()") | ||||||
|  | 	} | ||||||
| 	return string(b) | 	return string(b) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func Payload(d interface{}) lib.Payload { | func Payload(d interface{}) lib.Payload { | ||||||
| 	return payload{d} | 	return &payload{d} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func FromJson[T any](s string) lib.Payload { | ||||||
|  | 	pl := &payload{new(T)} | ||||||
|  | 	err := json.Unmarshal([]byte(s), &pl.data) | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Error().Err(err).Msg("payload: FromJson()") | ||||||
|  | 	} | ||||||
|  | 	return pl | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -16,5 +16,4 @@ var ( | ||||||
| 	Info  = logging.GetLogger(nil).Info | 	Info  = logging.GetLogger(nil).Info | ||||||
| 	Warn  = logging.GetLogger(nil).Warn | 	Warn  = logging.GetLogger(nil).Warn | ||||||
| 	Error = logging.GetLogger(nil).Error | 	Error = logging.GetLogger(nil).Error | ||||||
| 	Err   = logging.GetLogger(nil).Err |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -28,6 +28,7 @@ var Levels = map[string]zerolog.Level{ | ||||||
| 
 | 
 | ||||||
| type Logger = zerolog.Logger | type Logger = zerolog.Logger | ||||||
| 
 | 
 | ||||||
|  | var defaultLogger = log.Logger | ||||||
| var globalLogger *Logger = &log.Logger | var globalLogger *Logger = &log.Logger | ||||||
| 
 | 
 | ||||||
| type Cfg struct { | type Cfg struct { | ||||||
|  | @ -36,6 +37,10 @@ type Cfg struct { | ||||||
| 	Level   string | 	Level   string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func SetDefault() { | ||||||
|  | 	globalLogger = &defaultLogger | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func Setup(ctx lib.Context, cfg *Cfg, home string) { | func Setup(ctx lib.Context, cfg *Cfg, home string) { | ||||||
| 	if cfg == nil { | 	if cfg == nil { | ||||||
| 		return // use unchanged predefined logger | 		return // use unchanged predefined logger | ||||||
|  |  | ||||||
|  | @ -38,6 +38,7 @@ func MakeT(tbase *testing.T) *T { | ||||||
| 
 | 
 | ||||||
| func SetUp(tbase *testing.T) *T { | func SetUp(tbase *testing.T) *T { | ||||||
| 	t := MakeT(tbase) | 	t := MakeT(tbase) | ||||||
|  | 	logging.SetDefault() | ||||||
| 	return t | 	return t | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -54,4 +54,6 @@ func PayloadTest(t *testing.T) { | ||||||
| 	pl2 := message.Payload(map[string]string{"activity": "development"}) | 	pl2 := message.Payload(map[string]string{"activity": "development"}) | ||||||
| 	t.AssertEqual(fmt.Sprint(pl2), `{"activity":"development"}`) | 	t.AssertEqual(fmt.Sprint(pl2), `{"activity":"development"}`) | ||||||
| 	msg.WithPayload(pl2) | 	msg.WithPayload(pl2) | ||||||
|  | 	pl3 := message.FromJson[map[string]any](`{"activity": "development"}`) | ||||||
|  | 	t.AssertEqual(fmt.Sprint(pl3), `{"activity":"development"}`) | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue