35 lines
796 B
Go
35 lines
796 B
Go
![]() |
package cml04eventer
|
||
|
|
||
|
import (
|
||
|
"time"
|
||
|
|
||
|
"github.com/google/uuid"
|
||
|
)
|
||
|
|
||
|
// Event struct
|
||
|
type Event struct {
|
||
|
EventID string `json:"event_id"`
|
||
|
EventTopic string `json:"event_topic"`
|
||
|
EventSender string `json:"event_sender"`
|
||
|
EventMeta MetaData `json:"event_meta"`
|
||
|
EventData []byte `json:"event_data"`
|
||
|
EventTime string `json:"event_time"`
|
||
|
}
|
||
|
|
||
|
// NewEvent creates a new event
|
||
|
func NewEvent(eventSender, eventTopic string, eventMeta MetaData, eventData []byte) *Event {
|
||
|
// check if eventMeta is nil
|
||
|
if eventMeta == nil {
|
||
|
eventMeta = NewMetaData()
|
||
|
}
|
||
|
// return event
|
||
|
return &Event{
|
||
|
EventID: uuid.NewString(),
|
||
|
EventTopic: eventTopic,
|
||
|
EventSender: eventSender,
|
||
|
EventMeta: eventMeta,
|
||
|
EventData: eventData,
|
||
|
EventTime: time.Now().Format(time.RFC3339),
|
||
|
}
|
||
|
}
|