leaf-library-3/internal/api/http/provider.go

69 lines
1.7 KiB
Go
Raw Normal View History

2024-12-05 17:44:29 +00:00
package http
import (
"github.com/gofiber/fiber/v2"
"github.com/google/wire"
2024-12-06 18:44:32 +00:00
"leafdev.top/Leaf/leaf-library-3/internal/api/http/controller"
2024-12-05 17:44:29 +00:00
"leafdev.top/Leaf/leaf-library-3/internal/api/http/middleware"
"leafdev.top/Leaf/leaf-library-3/internal/base/conf"
"leafdev.top/Leaf/leaf-library-3/internal/base/logger"
2024-12-06 15:38:22 +00:00
"leafdev.top/Leaf/leaf-library-3/internal/services/auth"
2024-12-05 17:44:29 +00:00
)
type IMiddleware interface {
Handler() fiber.Handler
}
type Middleware struct {
Logger IMiddleware
Auth IMiddleware
JSONResponse IMiddleware
RBAC *middleware.RBAC
}
type Handlers struct {
2024-12-06 18:44:32 +00:00
// User *v1.UserController
Workspace *controller.WorkspaceController
Collection *controller.CollectionController
Document *controller.DocumentController
2024-12-05 17:44:29 +00:00
}
func NewHandler(
2024-12-06 18:44:32 +00:00
workspace *controller.WorkspaceController,
collection *controller.CollectionController,
document *controller.DocumentController,
2024-12-05 17:44:29 +00:00
) *Handlers {
return &Handlers{
2024-12-06 18:44:32 +00:00
Workspace: workspace,
Collection: collection,
Document: document,
2024-12-05 17:44:29 +00:00
}
}
func NewMiddleware(config *conf.Config, logger *logger.Logger, authService *auth.Service) *Middleware {
return &Middleware{
Logger: middleware.NewLogger(logger.Logger),
Auth: middleware.NewAuth(config, authService),
JSONResponse: middleware.NewJSONResponse(),
RBAC: middleware.NewRBAC(authService, config),
}
}
var ProviderSet = wire.NewSet(
// Init Middleware
middleware.NewAuth,
middleware.NewLogger,
middleware.NewJSONResponse,
middleware.NewRBAC,
NewMiddleware,
// Init Controller
2024-12-06 18:44:32 +00:00
// controller.NewUserController,
controller.NewWorkspaceController,
controller.NewCollectionController,
controller.NewDocumentController,
2024-12-05 17:44:29 +00:00
// Init Handler
NewHandler,
)