Files
hanko/backend/middleware/webhook.go
Stefan Jacobi 45cbd74314 feat(webhooks): add webhooks
* add webhooks settings to config
* add webhooks entity for database
* add endpoints for webhooks
* add worker for asynchronously executing webhooks
* add trigger for events to user change/create/delete users/emails

Closes #692
2024-01-12 16:04:31 +01:00

26 lines
683 B
Go

package middleware
import (
"github.com/labstack/echo/v4"
"github.com/teamhanko/hanko/backend/config"
hankoJwk "github.com/teamhanko/hanko/backend/crypto/jwk"
"github.com/teamhanko/hanko/backend/persistence"
"github.com/teamhanko/hanko/backend/webhooks"
)
func WebhookMiddleware(cfg *config.Config, jwkManager hankoJwk.Manager, persister persistence.WebhookPersister) echo.MiddlewareFunc {
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(ctx echo.Context) error {
manager, err := webhooks.NewManager(cfg, persister, jwkManager, ctx.Logger())
if err != nil {
return err
}
ctx.Set("webhook_manager", manager)
return next(ctx)
}
}
}