Skip to content

Commit

Permalink
feat: add create-event to tree cluster
Browse files Browse the repository at this point in the history
  • Loading branch information
Mohammad96Assaf committed Mar 2, 2025
1 parent 802d8fc commit 79cf227
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 3 deletions.
13 changes: 13 additions & 0 deletions internal/entities/events.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ const (
EventTypeCreateTree EventType = "create tree"
EventTypeDeleteTree EventType = "delete tree"
EventTypeUpdateTreeCluster EventType = "update tree cluster"
EventTypeCreateTreeCluster EventType = "create tree cluster"
EventTypeNewSensorData EventType = "receive sensor data"
EventTypeUpdateWateringPlan EventType = "update watering plan"
)
Expand Down Expand Up @@ -71,6 +72,11 @@ type EventUpdateTreeCluster struct {
New *TreeCluster
}

type EventCreateTreeCluster struct {
BasicEvent
New *TreeCluster
}

func NewEventUpdateTreeCluster(prev, newTc *TreeCluster) EventUpdateTreeCluster {
return EventUpdateTreeCluster{
BasicEvent: BasicEvent{eventType: EventTypeUpdateTreeCluster},
Expand All @@ -79,6 +85,13 @@ func NewEventUpdateTreeCluster(prev, newTc *TreeCluster) EventUpdateTreeCluster
}
}

func NewEventCreateTreeCluster(newTc *TreeCluster) EventCreateTreeCluster {
return EventCreateTreeCluster{
BasicEvent: BasicEvent{eventType: EventTypeCreateTreeCluster},
New: newTc,
}
}

type EventNewSensorData struct {
BasicEvent
New *SensorData
Expand Down
15 changes: 12 additions & 3 deletions internal/service/domain/treecluster/treecluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ func (s *TreeClusterService) publishUpdateEvent(ctx context.Context, prevTc *dom
}

event := domain.NewEventUpdateTreeCluster(prevTc, updatedTc)

err = s.eventManager.Publish(ctx, event)
if err != nil {
log.Error("error while sending event after updating tree cluster", "err", err)
Expand All @@ -77,6 +78,16 @@ func (s *TreeClusterService) publishUpdateEvent(ctx context.Context, prevTc *dom
return nil
}

func (s *TreeClusterService) publishCreateEvent(ctx context.Context, tc *domain.TreeCluster) {
log := logger.GetLogger(ctx)
log.Debug("publish new event", "event", domain.EventTypeCreateTreeCluster, "service", "TreeClusterService")

event := domain.NewEventCreateTreeCluster(tc)
if err := s.eventManager.Publish(ctx, event); err != nil {
log.Error("error while sending event after creating tree cluster", "err", err)
}
}

func (s *TreeClusterService) Create(ctx context.Context, createTc *domain.TreeClusterCreate) (*domain.TreeCluster, error) {
log := logger.GetLogger(ctx)
if err := s.validator.Struct(createTc); err != nil {
Expand Down Expand Up @@ -126,9 +137,7 @@ func (s *TreeClusterService) Create(ctx context.Context, createTc *domain.TreeCl
}

log.Info("tree cluster created successfully", "cluster_id", c.ID)
if err := s.publishUpdateEvent(ctx, c); err != nil {
return nil, service.MapError(ctx, err, service.ErrorLogAll)
}
s.publishCreateEvent(ctx, c)

return c, nil
}
Expand Down
1 change: 1 addition & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ func initializeEventManager() *worker.EventManager {
return worker.NewEventManager(
entities.EventTypeUpdateTree,
entities.EventTypeUpdateTreeCluster,
entities.EventTypeCreateTreeCluster,
entities.EventTypeCreateTree,
entities.EventTypeDeleteTree,
entities.EventTypeNewSensorData,
Expand Down

0 comments on commit 79cf227

Please sign in to comment.