api-platform/internal/handler/http/provider.go

51 lines
1.2 KiB
Go
Raw Normal View History

2024-11-21 11:25:32 +00:00
package http
import (
"github.com/google/wire"
"github.com/labstack/echo/v4"
2024-11-22 17:55:15 +00:00
"leafdev.top/Leaf/api-platform/internal/base/conf"
"leafdev.top/Leaf/api-platform/internal/base/logger"
v1 "leafdev.top/Leaf/api-platform/internal/handler/http/controller/v1"
"leafdev.top/Leaf/api-platform/internal/handler/http/middleware"
"leafdev.top/Leaf/api-platform/internal/service/auth"
2024-11-21 11:25:32 +00:00
)
type IMiddleware interface {
Handler() echo.MiddlewareFunc
}
type Middleware struct {
Logger IMiddleware
Auth IMiddleware
JSONResponse IMiddleware
}
type Handlers struct {
User *v1.UserController
}
func NewHandler(
user *v1.UserController,
) *Handlers {
return &Handlers{
User: user,
}
}
func NewMiddleware(config *conf.Config, logger *logger.Logger, authService *auth.Service) *Middleware {
return &Middleware{
Logger: middleware.NewLoggerMiddleware(logger.Logger),
Auth: middleware.NewAuthMiddleware(config, authService),
JSONResponse: middleware.NewJSONResponseMiddleware(),
}
}
var ProviderSet = wire.NewSet(
middleware.NewAuthMiddleware,
middleware.NewLoggerMiddleware,
middleware.NewJSONResponseMiddleware,
NewMiddleware,
v1.NewUserController,
NewHandler,
)