35 lines
988 B
Go
35 lines
988 B
Go
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))
|
|
}
|