update echo to v5 and prepare kontor-echo to use handlers, repository and service
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"github.com/uptrace/bun"
|
||||
)
|
||||
|
||||
type AdminHandler struct {
|
||||
AuthHandler *AuthHandler
|
||||
ProfileHandler *ProfileHandler
|
||||
PermissionHandler *PermissionHandler
|
||||
AssignmentHandler *AssignmentHandler
|
||||
TokenHandler *TokenHandler
|
||||
MailAccountHandler *MailAccountHandler
|
||||
MailHandler *MailHandler
|
||||
Secret []byte
|
||||
}
|
||||
|
||||
func NewAdminHandler(db *bun.DB, secret []byte) *AdminHandler {
|
||||
adminHandler := &AdminHandler{
|
||||
AuthHandler: &AuthHandler{Service: service.NewAuthService(repository.NewProfileRepository(db), secret)},
|
||||
ProfileHandler: NewProfileHandler(db),
|
||||
PermissionHandler: &PermissionHandler{Service: service.NewPermissionService(repository.NewPermissionRepository(db))},
|
||||
AssignmentHandler: NewAssignmentHandler(db),
|
||||
TokenHandler: NewTokenHandler(db),
|
||||
MailAccountHandler: NewMailAccountHandler(db),
|
||||
MailHandler: NewMailHandler(db),
|
||||
Secret: secret,
|
||||
}
|
||||
return adminHandler
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
echojwt "github.com/labstack/echo-jwt/v5"
|
||||
"github.com/labstack/echo/v5"
|
||||
"github.com/labstack/echo/v5/middleware"
|
||||
)
|
||||
|
||||
func New(admin *handlers.AdminHandler, media *handlers.MediaHandler) *echo.Router {
|
||||
e := echo.New()
|
||||
|
||||
skipper := func(c echo.Context) bool {
|
||||
// Skip health check endpoint
|
||||
return c.Request().URL.Path == "/health"
|
||||
}
|
||||
|
||||
e.Use(middleware.RequestLoggerWithConfig(middleware.RequestLoggerConfig{
|
||||
LogStatus: true,
|
||||
LogURI: true,
|
||||
LogError: true,
|
||||
HandleError: true,
|
||||
Skipper: skipper,
|
||||
LogValuesFunc: func(c echo.Context, v middleware.RequestLoggerValues) error {
|
||||
if v.Error == nil {
|
||||
slog.Info("REQUEST", "uri", v.URI, "status", v.Status)
|
||||
} else {
|
||||
slog.Info("REQUEST-ERROR", "uri",v.URI, "status", v.Status,"err", v.Error.Error())
|
||||
}
|
||||
return nil
|
||||
},
|
||||
}))
|
||||
return e
|
||||
}
|
||||
Reference in New Issue
Block a user