recommender/internal/handler/http/provider.go
2024-11-08 02:25:15 +08:00

64 lines
1.9 KiB
Go

package http
import (
"github.com/google/wire"
"leafdev.top/Ecosystem/recommender/internal/handler/http/controller/application_v1"
v1 "leafdev.top/Ecosystem/recommender/internal/handler/http/controller/v1"
"leafdev.top/Ecosystem/recommender/internal/handler/http/middleware"
)
var ProviderSet = wire.NewSet(
middleware.NewAuthMiddleware,
middleware.NewGinLoggerMiddleware,
middleware.NewJSONResponseMiddleware,
middleware.NewApplicationAuthMiddleware,
NewMiddleware,
v1.NewApplicationController,
application_v1.NewApplicationController,
application_v1.NewPostController,
application_v1.NewCategoryController,
NewHandler,
)
type Middleware struct {
GinLogger *middleware.GinLoggerMiddleware
Auth *middleware.AuthMiddleware
ApplicationAuth *middleware.ApplicationAuthMiddleware
JSONResponse *middleware.JSONResponseMiddleware
}
func NewMiddleware(
GinLogger *middleware.GinLoggerMiddleware,
Auth *middleware.AuthMiddleware,
JSONResponse *middleware.JSONResponseMiddleware,
ApplicationAuth *middleware.ApplicationAuthMiddleware,
) *Middleware {
return &Middleware{
Auth: Auth,
GinLogger: GinLogger,
JSONResponse: JSONResponse,
ApplicationAuth: ApplicationAuth,
}
}
type Handlers struct {
ApplicationController *v1.ApplicationController
ApplicationApi *application_v1.ApplicationController
ApplicationPostApi *application_v1.PostController
ApplicationCategoryApi *application_v1.CategoryController
}
func NewHandler(
applicationController *v1.ApplicationController,
applicationApiController *application_v1.ApplicationController,
applicationPostApi *application_v1.PostController,
applicationCategoryApi *application_v1.CategoryController,
) *Handlers {
return &Handlers{
ApplicationController: applicationController,
ApplicationApi: applicationApiController,
ApplicationPostApi: applicationPostApi,
ApplicationCategoryApi: applicationCategoryApi,
}
}