Files
hanko/backend/handler/admin_router.go
Frederic Jahn 6c9dad3d42 Merge pull request #966 from teamhanko/feat-add-user-admin-endpoint
Feat add create user admin endpoint
2023-08-14 10:24:31 +02:00

60 lines
1.6 KiB
Go

package handler
import (
"github.com/labstack/echo-contrib/echoprometheus"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
"github.com/teamhanko/hanko/backend/config"
"github.com/teamhanko/hanko/backend/dto"
hankoMiddleware "github.com/teamhanko/hanko/backend/middleware"
"github.com/teamhanko/hanko/backend/persistence"
"github.com/teamhanko/hanko/backend/template"
)
func NewAdminRouter(cfg *config.Config, persister persistence.Persister, prometheus echo.MiddlewareFunc) *echo.Echo {
e := echo.New()
e.Renderer = template.NewTemplateRenderer()
e.HideBanner = true
g := e.Group("")
e.HTTPErrorHandler = dto.NewHTTPErrorHandler(dto.HTTPErrorHandlerConfig{Debug: false, Logger: e.Logger})
e.Use(middleware.RequestID())
if cfg.Log.LogHealthAndMetrics {
e.Use(hankoMiddleware.GetLoggerMiddleware())
} else {
g.Use(hankoMiddleware.GetLoggerMiddleware())
}
e.Validator = dto.NewCustomValidator()
if prometheus != nil {
e.Use(prometheus)
e.GET("/metrics", echoprometheus.NewHandler())
}
statusHandler := NewStatusHandler(persister)
e.GET("/", statusHandler.Status)
healthHandler := NewHealthHandler()
health := e.Group("/health")
health.GET("/alive", healthHandler.Alive)
health.GET("/ready", healthHandler.Ready)
userHandler := NewUserHandlerAdmin(persister)
user := g.Group("/users")
user.GET("", userHandler.List)
user.POST("", userHandler.Create)
user.GET("/:id", userHandler.Get)
user.DELETE("/:id", userHandler.Delete)
auditLogHandler := NewAuditLogHandler(persister)
auditLogs := g.Group("/audit_logs")
auditLogs.GET("", auditLogHandler.List)
return e
}