Skip to content
Snippets Groups Projects
event.go 1015 B
Newer Older
  • Learn to ignore specific revisions
  • package event
    
    import "github.com/google/uuid"
    
    // Event is a event that can be published via the event service as payload.
    type Event struct {
    
    	ID       uuid.UUID `json:"id,omitempty"`
    	EntityID uuid.UUID `json:"entity_id,omitempty"`
    	Type     string    `json:"type,omitempty"`
    
    const(
        // TypeAdd is an add event.
        TypeAdd = "add"
    
        // TypeUpdate is an update event.
        TypeUpdate = "update"
    
        // TypeDelete is a delete event.
        TypeDelete = "delete"
    )
    
    
    // NewAddEvent creates a new add event.
    func NewAddEvent(entityID uuid.UUID) Event {
    	return Event{
    		ID:       uuid.New(),
    		EntityID: entityID,
    		Type:     TypeAdd,
    	}
    }
    
    // NewDeleteEvent creates a new delete event.
    func NewDeleteEvent(entityID uuid.UUID) Event {
    	return Event{
    		ID:       uuid.New(),
    		EntityID: entityID,
    		Type:     TypeDelete,
    	}
    }
    
    // NewUpdateEvent creates a new update event.
    func NewUpdateEvent(entityID uuid.UUID) Event {
    	return Event{
    		ID:       uuid.New(),
    		EntityID: entityID,
    		Type:     TypeUpdate,
    	}
    }