From a161b0d68e43e288b3c6a026f3a218d8fa34b204 Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 23 Jun 2025 21:13:08 +0200 Subject: [PATCH] documentation --- README.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 11589cd..bf2bb1a 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,8 @@ ## How To In this Example i use the generic-di package to Inject a Service into a Event. -first you have to create some Event Handler: +First you have to create some Event Handler and/or Effects that was fired when a Event happens. +Then you give the Effects and the EventHandlers to a Registration to serve it. services/external_service.go @@ -104,3 +105,51 @@ func (event *UserLoginEvent) Handle(ctx *serverevents.Context) { }) } ``` + +effects/login_success_effect.go + +```go +package effects + +type LoginSuccessEffect struct {} + +func NewLoginSuccessEffect() *LoginSuccessEffect { + return &LoginSuccessEffect{} +} + +// implement a Method that gives the Name of the Event to listen +func (effect *LoginSuccessEffect) OnEvent() string { + return "login success" +} + +// implement a Method to Handle the Effect triggered +func (effect *LoginSuccessEffect) Execute(ctx *serverevents.Context) { + // do something on login success here... +} +``` + +main.go + +```go +package main + +import ( + serverevents "git.apihub24.de/admin/server_events" +) + +func main() { + port := ":8080" + + serverevents.RegisterEvents([]serverevents.EventHandler{ + events.NewLoginEvent(), + }, []serverevents.Effect{ + effects.NewLoginSuccessEffect(), + }, nil) + + log.Default().Printf("Start Server at Port %s", port) + err := http.ListenAndServe(port, nil) + if err != nil { + log.Fatalf("Error on start Server: %v", err) + } +} +```