forked from jdextraze/go-gesclient
/
recorded_event.go
59 lines (46 loc) · 1.71 KB
/
recorded_event.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package client
import (
"fmt"
"github.com/jdextraze/go-gesclient/guid"
"github.com/jdextraze/go-gesclient/messages"
"github.com/satori/go.uuid"
"time"
)
type RecordedEvent struct {
eventStreamId string
eventId uuid.UUID
eventNumber int
eventType string
data []byte
metadata []byte
isJson bool
created time.Time
createdEpoch time.Time
}
func newRecordedEvent(evt *messages.EventRecord) *RecordedEvent {
return &RecordedEvent{
eventStreamId: evt.GetEventStreamId(),
eventId: guid.FromBytes(evt.GetEventId()),
eventNumber: int(evt.GetEventNumber()),
eventType: evt.GetEventType(),
data: evt.GetData(),
metadata: evt.GetMetadata(),
isJson: evt.GetDataContentType() == 1,
created: timeFromTicks(evt.GetCreated()),
createdEpoch: timeFromUnixMilliseconds(evt.GetCreatedEpoch()),
}
}
func (e *RecordedEvent) EventStreamId() string { return e.eventStreamId }
func (e *RecordedEvent) EventId() uuid.UUID { return e.eventId }
func (e *RecordedEvent) EventNumber() int { return e.eventNumber }
func (e *RecordedEvent) EventType() string { return e.eventType }
func (e *RecordedEvent) Data() []byte { return e.data }
func (e *RecordedEvent) Metadata() []byte { return e.metadata }
func (e *RecordedEvent) IsJson() bool { return e.isJson }
func (e *RecordedEvent) Created() time.Time { return e.created }
func (e *RecordedEvent) CreatedEpoch() time.Time { return e.createdEpoch }
func (e *RecordedEvent) String() string {
return fmt.Sprintf(
"&{eventStreamId:%s eventId:%s eventNumber:%d eventType:%s isJson:%t data:[...] metadata:[...] created:%s}",
e.eventStreamId, e.eventId, e.eventNumber, e.eventType, e.isJson, e.created)
}