github.com/miguelgrubin/gin-boilerplate@v0.0.0-20231208120009-f8f00c6d4138/pkg/shared/domain/event_registry.go (about) 1 package domain 2 3 import "time" 4 5 type Event struct { 6 Id string 7 Date time.Time 8 } 9 10 type EventRegistry struct { 11 Events map[string]Event 12 } 13 14 func NewEventRegistry() *EventRegistry { 15 return &EventRegistry{ 16 Events: make(map[string]Event), 17 } 18 } 19 20 func (er *EventRegistry) AddEvent(id string) { 21 er.Events[id] = Event{ 22 Id: id, 23 Date: time.Now(), 24 } 25 } 26 27 func (er *EventRegistry) GetEvent(id string) Event { 28 return er.Events[id] 29 } 30 31 func (er *EventRegistry) GetAllEvents() []Event { 32 events := make([]Event, 0, len(er.Events)) 33 for _, event := range er.Events { 34 events = append(events, event) 35 } 36 return events 37 } 38 39 func (er *EventRegistry) HasEvent(id string) bool { 40 ev := er.GetEvent(id) 41 if ev.Id != "" { 42 return true 43 } 44 return false 45 }