github.com/billybanfield/evergreen@v0.0.0-20170525200750-eeee692790f7/model/event/distro_event.go (about) 1 package event 2 3 import ( 4 "time" 5 6 "github.com/mongodb/grip" 7 ) 8 9 const ( 10 // resource type 11 ResourceTypeDistro = "DISTRO" 12 13 // event types 14 EventDistroAdded = "DISTRO_ADDED" 15 EventDistroModified = "DISTRO_MODIFIED" 16 EventDistroRemoved = "DISTRO_REMOVED" 17 ) 18 19 // DistroEventData implements EventData. 20 type DistroEventData struct { 21 // necessary for IsValid 22 ResourceType string `bson:"r_type" json:"resource_type"` 23 DistroId string `bson:"d_id,omitempty" json:"d_id,omitempty"` 24 UserId string `bson:"u_id,omitempty" json:"u_id,omitempty"` 25 Data interface{} `bson:"dstr,omitempty" json:"dstr,omitempty"` 26 } 27 28 func (d DistroEventData) IsValid() bool { 29 return d.ResourceType == ResourceTypeDistro 30 } 31 32 func LogDistroEvent(distroId string, eventType string, eventData DistroEventData) { 33 eventData.ResourceType = ResourceTypeDistro 34 event := Event{ 35 ResourceId: distroId, 36 Timestamp: time.Now(), 37 EventType: eventType, 38 Data: DataWrapper{eventData}, 39 } 40 41 if err := NewDBEventLogger(AllLogCollection).LogEvent(event); err != nil { 42 grip.Errorf("Error logging distro event: %+v", err) 43 } 44 } 45 46 func LogDistroAdded(distroId, userId string, data interface{}) { 47 LogDistroEvent(distroId, EventDistroAdded, DistroEventData{UserId: userId, Data: data}) 48 } 49 50 func LogDistroModified(distroId, userId string, data interface{}) { 51 LogDistroEvent(distroId, EventDistroModified, DistroEventData{UserId: userId, Data: data}) 52 } 53 54 func LogDistroRemoved(distroId, userId string, data interface{}) { 55 LogDistroEvent(distroId, EventDistroRemoved, DistroEventData{UserId: userId, Data: data}) 56 }