events

package
v0.0.0-...-c85e528 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2025 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NotificationsExchangeName = "notifications"
	NotificationRoutingKey    = "notification"

	EventsExchangeName                      = "customeros"
	EventsRoutingKey                        = "event"
	EventsQueueName                         = "events"
	EventsFlowParticipantScheduleQueueName  = "events-flow-participant-schedule"
	EventsFlowParticipantScheduleRoutingKey = "flow-participant-schedule"
	EventsOpensearchQueueName               = "events-opensearch"
)

Variables

This section is empty.

Functions

func NewHandler

func NewHandler(eventType interface{}, handlerFunc interface{}) interfaces.EventHandler

NewHandler creates a new EventHandler with proper type handling

Types

type EventHandlerRegistration

type EventHandlerRegistration struct {
	Handler   interfaces.EventHandler
	EventType string
	DataType  reflect.Type
}

EventHandlerRegistration holds the handler information for a specific event type

type EventsService

type EventsService struct {
	Publisher  *RabbitMQPublisher
	Subscriber *RabbitMQSubscriber
	Handlers   *HandlerRegistry
}

func NewEventsService

func NewEventsService(rabbitmqURL string, log logger.Logger) (*EventsService, error)

func (*EventsService) Close

func (s *EventsService) Close() error

func (*EventsService) GetHandler

func (s *EventsService) GetHandler(eventTypeName string) (interfaces.EventHandler, bool)

func (*EventsService) RegisterHandler

func (s *EventsService) RegisterHandler(eventType interface{}, handler interfaces.EventHandler)

type HandlerRegistry

type HandlerRegistry struct {
	// contains filtered or unexported fields
}

HandlerRegistry manages event handlers

func NewHandlerRegistry

func NewHandlerRegistry() *HandlerRegistry

NewHandlerRegistry creates a new handler registry

type RabbitMQPublisher

type RabbitMQPublisher struct {
	// contains filtered or unexported fields
}

RabbitMQPublisher implements the EventPublisher interface for RabbitMQ

func NewRabbitMQPublisher

func NewRabbitMQPublisher(rabbitmqURL string, logger logger.Logger) (*RabbitMQPublisher, error)

NewRabbitMQPublisher creates a new RabbitMQ publisher

func (*RabbitMQPublisher) Close

func (r *RabbitMQPublisher) Close() error

Close closes the RabbitMQ connection and channel

func (*RabbitMQPublisher) PublishEvent

func (r *RabbitMQPublisher) PublishEvent(ctx context.Context, entityId string, entityType model.EntityType, message interface{}) error

PublishEvent publishes an event to the default exchange and routing key

func (*RabbitMQPublisher) PublishEventCompleted

func (r *RabbitMQPublisher) PublishEventCompleted(ctx context.Context, tenant string, entityId string, entityType model.EntityType, details *utils.EventCompletedDetails)

PublishEventCompleted publishes an event completion notification

func (*RabbitMQPublisher) PublishEventCompletedBulk

func (r *RabbitMQPublisher) PublishEventCompletedBulk(ctx context.Context, tenant string, entityIds []string, entityType model.EntityType, details *utils.EventCompletedDetails)

func (*RabbitMQPublisher) PublishEventOnExchange

func (r *RabbitMQPublisher) PublishEventOnExchange(ctx context.Context, entityId string, entityType model.EntityType, message interface{}, exchange, routingKey string) error

PublishEventOnExchange publishes an event to a specific exchange and routing key

func (*RabbitMQPublisher) PublishFlowAgentEvent

func (r *RabbitMQPublisher) PublishFlowAgentEvent(ctx context.Context, event dto.FlowAgentEvent) error

PublishFlowAgentEvent publishes a flow agent event

func (*RabbitMQPublisher) PublishFlowAgentEventResult

func (r *RabbitMQPublisher) PublishFlowAgentEventResult(ctx context.Context, event dto.FlowAgentExecutionResultEvent) error

PublishFlowAgentEventResult publishes a flow agent event result

func (*RabbitMQPublisher) PublishWebhookEvent

func (r *RabbitMQPublisher) PublishWebhookEvent(ctx context.Context, event dto.WebhookEvent) error

PublishWebhookEvent publishes a webhook event

type RabbitMQSubscriber

type RabbitMQSubscriber struct {
	// contains filtered or unexported fields
}

RabbitMQSubscriber implements the EventSubscriber interface for RabbitMQ

func NewRabbitMQSubscriber

func NewRabbitMQSubscriber(rabbitmqURL string, logger logger.Logger) (*RabbitMQSubscriber, error)

NewRabbitMQSubscriber creates a new RabbitMQ subscriber

func (*RabbitMQSubscriber) Close

func (r *RabbitMQSubscriber) Close() error

func (*RabbitMQSubscriber) ListenQueue

func (r *RabbitMQSubscriber) ListenQueue(queueName string) error

ListenQueue starts listening to a standard queue

func (*RabbitMQSubscriber) ListenQueueExclusive

func (r *RabbitMQSubscriber) ListenQueueExclusive(queueName string) error

ListenQueueExclusive starts listening to an exclusive queue

func (*RabbitMQSubscriber) RegisterHandler

func (r *RabbitMQSubscriber) RegisterHandler(eventType interface{}, handler interfaces.EventHandler)

RegisterHandler registers a handler for a specific event type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL