package handler import ( "fmt" serverevents "git.apihub24.de/admin/server_events/v2" "git.apihub24.de/admin/server_events/v2/implementation_test/data/dto" "git.apihub24.de/admin/server_events/v2/implementation_test/events/definitions" "git.apihub24.de/admin/server_events/v2/implementation_test/filter" ) type greetMeEventHandler struct{} func NewGreetMeEventHandler() serverevents.IEventHandler { return &greetMeEventHandler{} } func (handler *greetMeEventHandler) GetConnectedEventName() string { return definitions.GreetMeEventName } func (handler *greetMeEventHandler) CanExecute(_ serverevents.IContext) bool { return true } func (handler *greetMeEventHandler) Handle(context serverevents.IContext, data any) { userName, ok := serverevents.ValueAs[string](data) if !ok || len(userName) < 1 { userName = "Anonymous" } context.Dispatch(definitions.NewGreetEvent(dto.Greeting{ Message: fmt.Sprintf("Hello, %s", userName), }), filter.WithSameUserName(context)) }