Documentation
¶
Index ¶
- Constants
- func NewHandler(eventType interface{}, handlerFunc interface{}) interfaces.EventHandler
- type EventHandlerRegistration
- type EventsService
- type HandlerRegistry
- type RabbitMQPublisher
- func (r *RabbitMQPublisher) Close() error
- func (r *RabbitMQPublisher) PublishEvent(ctx context.Context, entityId string, entityType model.EntityType, ...) error
- func (r *RabbitMQPublisher) PublishEventCompleted(ctx context.Context, tenant string, entityId string, ...)
- func (r *RabbitMQPublisher) PublishEventCompletedBulk(ctx context.Context, tenant string, entityIds []string, ...)
- func (r *RabbitMQPublisher) PublishEventOnExchange(ctx context.Context, entityId string, entityType model.EntityType, ...) error
- func (r *RabbitMQPublisher) PublishFlowAgentEvent(ctx context.Context, event dto.FlowAgentEvent) error
- func (r *RabbitMQPublisher) PublishFlowAgentEventResult(ctx context.Context, event dto.FlowAgentExecutionResultEvent) error
- func (r *RabbitMQPublisher) PublishWebhookEvent(ctx context.Context, event dto.WebhookEvent) error
- type RabbitMQSubscriber
Constants ¶
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