Example #1
0
func (r *Repository) getStreamChangeFromSource(source sourcing.EventSource) (*EventStreamChange, error) {
	sourceId := source.Id()
	events := source.Events()
	eventCount := int64(len(events))

	fromSequence := int64(0)
	streamEvents := make([]*Event, eventCount)

	for i, e := range events {
		Log.Notice("%T", e)

		name := r.namer.GetEventName(e)
		sequence := NewEventSequence(fromSequence + int64(i))

		id := NewEventId()
		timestamp := time.Now()
		streamEvents[i] = NewEvent(id, name, sequence, timestamp, e)
	}

	return &EventStreamChange{
		StreamId: EventStreamId(sourceId),
		From:     fromSequence,
		To:       fromSequence + eventCount,
		Events:   streamEvents,
	}, nil
}