|
|
|
package auth
|
|
|
|
|
|
|
|
import (
|
|
|
|
"log"
|
|
|
|
|
|
|
|
"gofaster/internal/auth/controller"
|
|
|
|
"gofaster/internal/auth/repository"
|
|
|
|
"gofaster/internal/auth/service"
|
|
|
|
"gofaster/internal/core"
|
|
|
|
"gofaster/internal/shared/database"
|
|
|
|
)
|
|
|
|
|
|
|
|
// Module 认证模块
|
|
|
|
type Module struct {
|
|
|
|
userController *controller.UserController
|
|
|
|
authController *controller.AuthController
|
|
|
|
passwordController *controller.PasswordController
|
|
|
|
}
|
|
|
|
|
|
|
|
// NewModule 创建新的认证模块
|
|
|
|
func NewModule() *Module {
|
|
|
|
return &Module{}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Start 启动模块
|
|
|
|
func (m *Module) Start(cfg interface{}, db *database.Database) error {
|
|
|
|
// 初始化仓库
|
|
|
|
userRepo := repository.NewUserRepository(db.DB)
|
|
|
|
passwordPolicyRepo := repository.NewPasswordPolicyRepository(db.DB)
|
|
|
|
passwordHistoryRepo := repository.NewPasswordHistoryRepository(db.DB)
|
|
|
|
passwordResetRepo := repository.NewPasswordResetRepository(db.DB)
|
|
|
|
|
|
|
|
// 初始化服务
|
|
|
|
userService := service.NewUserService(userRepo)
|
|
|
|
authService := service.NewAuthService(userRepo)
|
|
|
|
passwordService := service.NewPasswordService(
|
|
|
|
userRepo,
|
|
|
|
passwordPolicyRepo,
|
|
|
|
passwordHistoryRepo,
|
|
|
|
passwordResetRepo,
|
|
|
|
)
|
|
|
|
|
|
|
|
// 初始化控制器
|
|
|
|
m.userController = controller.NewUserController(userService)
|
|
|
|
m.authController = controller.NewAuthController(authService)
|
|
|
|
m.passwordController = controller.NewPasswordController(passwordService, userService)
|
|
|
|
|
|
|
|
log.Printf("✅ 认证模块初始化完成")
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// Stop 停止模块
|
|
|
|
func (m *Module) Stop() error {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// RegisterRoutes 注册路由
|
|
|
|
func (m *Module) RegisterRoutes(router interface{}) {
|
|
|
|
// 这里应该注册具体的路由
|
|
|
|
// 暂时留空,由具体的路由文件处理
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetName 获取模块名称
|
|
|
|
func (m *Module) GetName() string {
|
|
|
|
return "auth"
|
|
|
|
}
|