1e678c4b7e
modified: serv_nginx/api_bb/go.mod modified: serv_nginx/api_bb/go.sum modified: serv_nginx/api_bb/internal/database/migrate.go modified: serv_nginx/api_bb/internal/handlers/auth.go new file: serv_nginx/api_bb/internal/handlers/email_handler.go modified: serv_nginx/api_bb/internal/handlers/handlers.go modified: serv_nginx/api_bb/internal/models/user.go new file: serv_nginx/api_bb/internal/repository/email_repository.go modified: serv_nginx/api_bb/internal/repository/user_repository.go modified: serv_nginx/api_bb/internal/routes/routes.go new file: serv_nginx/api_bb/internal/service/email_service.go modified: serv_nginx/api_bb/internal/service/user_service.go new file: serv_nginx/api_bb/pkg/email/email.go add email sender, vrificator and reset password
166 lines
5.9 KiB
Go
166 lines
5.9 KiB
Go
// handlers/handlers.go
|
|
package handlers
|
|
|
|
import (
|
|
"api_bb/internal/config"
|
|
"api_bb/internal/repository"
|
|
"api_bb/internal/service"
|
|
"api_bb/pkg/email"
|
|
"api_bb/pkg/logger"
|
|
|
|
"go.uber.org/zap"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Handler struct {
|
|
healthHandler *HealthHandler
|
|
authHandler *AuthHandler
|
|
userHandler *UserHandler
|
|
avatarHandler *AvatarHandler
|
|
newsHandler *NewsHandler
|
|
reviewHandler *ReviewHandler
|
|
userStatsHandler *UserStatsHandler
|
|
userWorkoutHandler *UserWorkoutHandler
|
|
userAchievementHandler *UserAchievementHandler
|
|
eventHandler *EventHandler
|
|
eventRegistrationHandler *EventRegistrationHandler
|
|
personalBestHandler *PersonalBestHandler
|
|
trainingPlanHandler *TrainingPlanHandler
|
|
emailHandler *EmailHandler
|
|
// Здесь будут добавлены другие обработчики
|
|
// userHandler *UserHandler
|
|
// eventHandler *EventHandler
|
|
// reviewHandler *ReviewHandler
|
|
}
|
|
|
|
func NewHandler(db *gorm.DB, cfg *config.Config) *Handler {
|
|
// Инициализация репозиториев
|
|
userRepo := repository.NewUserRepository(db)
|
|
newsRepo := repository.NewNewsRepository(db)
|
|
commentRepo := repository.NewCommentRepository(db)
|
|
reviewRepo := repository.NewReviewRepository(db)
|
|
userStatsRepo := repository.NewUserStatsRepository(db)
|
|
userWorkoutRepo := repository.NewWorkoutRepository(db)
|
|
userAchievemenRepo := repository.NewAchievementRepository(db)
|
|
eventRepo := repository.NewEventRepository(db)
|
|
eventRegistrationRepo := repository.NewEventRegistrationRepository(db)
|
|
personalBestRepo := repository.NewPersonalBestRepository(db)
|
|
trainingPlanRepo := repository.NewTrainingPlanRepository(db)
|
|
emailRepo := repository.NewEmailRepository(db)
|
|
|
|
// Initialize logger
|
|
baseLogger := logger.NewWrapper(logger.Get()) // Создаем базовый логгер
|
|
|
|
// getConfig
|
|
emailSender, err := email.NewService(config.Load())
|
|
if err != nil {
|
|
baseLogger.Info("error to load config", zap.Error(err))
|
|
}
|
|
|
|
// Инициализация сервисов
|
|
jwtService := service.NewJWTService(cfg.JWTSecret)
|
|
authService := service.NewAuthService(userRepo, jwtService, baseLogger)
|
|
userService := service.NewUserService(userRepo, jwtService, baseLogger)
|
|
avatarService := service.NewAvatarService(userRepo, baseLogger)
|
|
newsService := service.NewNewsService(newsRepo, commentRepo, baseLogger)
|
|
reviewService := service.NewReviewService(reviewRepo, baseLogger)
|
|
userStatsService := service.NewUserStatsService(userStatsRepo)
|
|
userWorkoutService := service.NewWorkoutService(userWorkoutRepo)
|
|
achievementService := service.NewAchievementService(userAchievemenRepo)
|
|
eventRegistrationService := service.NewEventRegistrationService(eventRegistrationRepo, eventRepo, baseLogger)
|
|
eventService := service.NewEventService(eventRepo, eventRegistrationRepo, baseLogger)
|
|
personalBestService := service.NewPersonalBestService(personalBestRepo, userStatsService)
|
|
trainingPlanService := service.NewTrainingPlanService(*trainingPlanRepo)
|
|
emailService := service.NewEmailService(*emailRepo, userRepo, *emailSender)
|
|
|
|
// Инициализация обработчиков
|
|
healthHandler := NewHealthHandler()
|
|
authHandler := NewAuthHandler(authService, jwtService, emailService)
|
|
userHandler := NewUserHandler(&userService)
|
|
newsHandler := NewNewsHandler(newsService, baseLogger)
|
|
avatarHandler := NewAvatarHandler(avatarService)
|
|
reviewHandler := NewReviewHandler(reviewService, baseLogger)
|
|
userStatsHandler := NewUserStatsHandler(userStatsService)
|
|
userWorkoutHandler := NewUserWorkoutHandler(userWorkoutService)
|
|
userAchievementHandler := NewUserAchievementHandler(*achievementService)
|
|
eventHandler := NewEventHandler(eventService)
|
|
eventRegistrationHandler := NewEventRegistrationHandler(eventRegistrationService)
|
|
personalBestHandler := NewPersonalBestHandler(*personalBestService)
|
|
trainingPlanHandler := NewTrainingPlanHandler(trainingPlanService)
|
|
emailHandler := NewEmailHandler(&emailService)
|
|
|
|
return &Handler{
|
|
healthHandler: healthHandler,
|
|
authHandler: authHandler,
|
|
userHandler: userHandler,
|
|
newsHandler: newsHandler,
|
|
avatarHandler: avatarHandler,
|
|
reviewHandler: reviewHandler,
|
|
userStatsHandler: userStatsHandler,
|
|
userWorkoutHandler: userWorkoutHandler,
|
|
userAchievementHandler: userAchievementHandler,
|
|
eventHandler: eventHandler,
|
|
eventRegistrationHandler: eventRegistrationHandler,
|
|
personalBestHandler: personalBestHandler,
|
|
trainingPlanHandler: trainingPlanHandler,
|
|
emailHandler: emailHandler,
|
|
}
|
|
}
|
|
|
|
// Геттеры для обработчиков (опционально, для удобства)
|
|
func (h *Handler) EmailHandler() *EmailHandler {
|
|
return h.emailHandler
|
|
}
|
|
|
|
func (h *Handler) TrainingPlanHandler() *TrainingPlanHandler {
|
|
return h.trainingPlanHandler
|
|
}
|
|
|
|
func (h *Handler) PersonalBestHandler() *PersonalBestHandler {
|
|
return h.personalBestHandler
|
|
}
|
|
|
|
func (h *Handler) EventHandler() *EventHandler {
|
|
return h.eventHandler
|
|
}
|
|
|
|
func (h *Handler) EventRegistrationHandler() *EventRegistrationHandler {
|
|
return h.eventRegistrationHandler
|
|
}
|
|
|
|
func (h *Handler) HealthHandler() *HealthHandler {
|
|
return h.healthHandler
|
|
}
|
|
|
|
func (h *Handler) AuthHandler() *AuthHandler {
|
|
return h.authHandler
|
|
}
|
|
|
|
func (h *Handler) UserHandler() *UserHandler {
|
|
return h.userHandler
|
|
}
|
|
|
|
func (h *Handler) AvatarHandler() *AvatarHandler {
|
|
return h.avatarHandler
|
|
}
|
|
|
|
func (h *Handler) NewsHandler() *NewsHandler {
|
|
return h.newsHandler
|
|
}
|
|
|
|
func (h *Handler) ReviewHandler() *ReviewHandler {
|
|
return h.reviewHandler
|
|
}
|
|
|
|
func (h *Handler) UserStatsHandler() *UserStatsHandler {
|
|
return h.userStatsHandler
|
|
}
|
|
|
|
func (h *Handler) UserWorkoutHandler() *UserWorkoutHandler {
|
|
return h.userWorkoutHandler
|
|
}
|
|
|
|
func (h *Handler) UserAchievementHandler() *UserAchievementHandler {
|
|
return h.userAchievementHandler
|
|
}
|