recommender/internal/handler/http/provider.go
2024-11-07 20:00:06 +08:00

56 lines
1.5 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,
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
}
func NewHandler(
applicationController *v1.ApplicationController,
applicationApiController *application_v1.ApplicationController,
) *Handlers {
return &Handlers{
ApplicationController: applicationController,
ApplicationApi: applicationApiController,
}
}