69 lines
2.1 KiB
Go
69 lines
2.1 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,
|
|
application_v1.NewUserController,
|
|
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
|
|
ApplicationUserApi *application_v1.UserController
|
|
}
|
|
|
|
func NewHandler(
|
|
applicationController *v1.ApplicationController,
|
|
applicationApiController *application_v1.ApplicationController,
|
|
applicationPostApi *application_v1.PostController,
|
|
applicationCategoryApi *application_v1.CategoryController,
|
|
applicationUserApi *application_v1.UserController,
|
|
|
|
) *Handlers {
|
|
return &Handlers{
|
|
ApplicationController: applicationController,
|
|
ApplicationApi: applicationApiController,
|
|
ApplicationPostApi: applicationPostApi,
|
|
ApplicationCategoryApi: applicationCategoryApi,
|
|
ApplicationUserApi: applicationUserApi,
|
|
}
|
|
}
|