45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
// handlers/handlers.go
|
|
package handlers
|
|
|
|
import (
|
|
"go-rest-api/internal/repository"
|
|
"go-rest-api/internal/service"
|
|
"go-rest-api/internal/config"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Handler struct {
|
|
healthHandler *HealthHandler
|
|
authHandler *AuthHandler
|
|
// Здесь будут добавлены другие обработчики
|
|
// userHandler *UserHandler
|
|
// eventHandler *EventHandler
|
|
// reviewHandler *ReviewHandler
|
|
}
|
|
|
|
func NewHandler(db *gorm.DB, cfg *config.Config) *Handler {
|
|
// Инициализация репозиториев
|
|
userRepo := repository.NewUserRepository(db)
|
|
|
|
// Инициализация сервисов
|
|
jwtService := service.NewJWTService(cfg.JWTSecret)
|
|
authService := service.NewAuthService(userRepo, jwtService)
|
|
|
|
// Инициализация обработчиков
|
|
healthHandler := NewHealthHandler()
|
|
authHandler := NewAuthHandler(authService, jwtService)
|
|
|
|
return &Handler{
|
|
healthHandler: healthHandler,
|
|
authHandler: authHandler,
|
|
}
|
|
}
|
|
|
|
// Геттеры для обработчиков (опционально, для удобства)
|
|
func (h *Handler) HealthHandler() *HealthHandler {
|
|
return h.healthHandler
|
|
}
|
|
|
|
func (h *Handler) AuthHandler() *AuthHandler {
|
|
return h.authHandler
|
|
} |