Files
event/event.go
2023-06-17 13:35:55 -07:00

41 lines
646 B
Go

package event
import (
"fmt"
"time"
)
type Event struct {
start time.Time
Time string `json:"time"`
SampleRate int64 `json:"samplerate"`
Data map[string]any `json:"data"`
}
func NewEvent(eventType string, vals ...any) *Event {
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 {
panic(fmt.Sprintf("missing value for key in: %#v", vals))
}
for i := 0; i < len(vals); i += 2 {
ev.Data[vals[i].(string)] = vals[i+1]
}
}