Files
event/event.go

41 lines
646 B
Go
Raw Normal View History

2023-06-11 20:32:36 -07:00
package event
2023-06-12 20:03:17 -07:00
2023-06-17 13:35:55 -07:00
import (
"fmt"
"time"
)
2023-06-12 20:03:17 -07:00
type Event struct {
start time.Time
Time string `json:"time"`
SampleRate int64 `json:"samplerate"`
Data map[string]any `json:"data"`
}
2023-06-12 20:18:19 -07:00
func NewEvent(eventType string, vals ...any) *Event {
2023-06-12 20:03:17 -07:00
now := time.Now()
ev := &Event{
start: now,
Time: now.Format(time.RFC3339Nano),
Data: map[string]any{
"type": eventType,
},
}
ev.Set(vals...)
return ev
}
func (ev *Event) Set(vals ...any) {
if len(vals)%2 != 0 {
2023-06-17 13:35:55 -07:00
panic(fmt.Sprintf("missing value for key in: %#v", vals))
2023-06-12 20:03:17 -07:00
}
for i := 0; i < len(vals); i += 2 {
ev.Data[vals[i].(string)] = vals[i+1]
}
}