f
This commit is contained in:
67
internal/infrastructure/http/routes/user_routes.go
Normal file
67
internal/infrastructure/http/routes/user_routes.go
Normal file
@@ -0,0 +1,67 @@
|
||||
package routes
|
||||
|
||||
import (
|
||||
"hyapi-server/internal/infrastructure/http/handlers"
|
||||
sharedhttp "hyapi-server/internal/shared/http"
|
||||
"hyapi-server/internal/shared/middleware"
|
||||
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
// UserRoutes 用户路由注册器
|
||||
type UserRoutes struct {
|
||||
handler *handlers.UserHandler
|
||||
authMiddleware *middleware.JWTAuthMiddleware
|
||||
adminAuthMiddleware *middleware.AdminAuthMiddleware
|
||||
logger *zap.Logger
|
||||
}
|
||||
|
||||
// NewUserRoutes 创建用户路由注册器
|
||||
func NewUserRoutes(
|
||||
handler *handlers.UserHandler,
|
||||
authMiddleware *middleware.JWTAuthMiddleware,
|
||||
adminAuthMiddleware *middleware.AdminAuthMiddleware,
|
||||
logger *zap.Logger,
|
||||
) *UserRoutes {
|
||||
return &UserRoutes{
|
||||
handler: handler,
|
||||
authMiddleware: authMiddleware,
|
||||
adminAuthMiddleware: adminAuthMiddleware,
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
// Register 注册用户相关路由
|
||||
func (r *UserRoutes) Register(router *sharedhttp.GinRouter) {
|
||||
// 用户域路由组
|
||||
engine := router.GetEngine()
|
||||
usersGroup := engine.Group("/api/v1/users")
|
||||
{
|
||||
// 公开路由(不需要认证)
|
||||
usersGroup.POST("/send-code", r.handler.SendCode) // 发送验证码
|
||||
usersGroup.POST("/register", r.handler.Register) // 用户注册
|
||||
usersGroup.POST("/login-password", r.handler.LoginWithPassword) // 密码登录
|
||||
usersGroup.POST("/login-sms", r.handler.LoginWithSMS) // 短信验证码登录
|
||||
usersGroup.POST("/reset-password", r.handler.ResetPassword) // 重置密码
|
||||
|
||||
// 需要认证的路由
|
||||
authenticated := usersGroup.Group("")
|
||||
authenticated.Use(r.authMiddleware.Handle())
|
||||
{
|
||||
authenticated.GET("/me", r.handler.GetProfile) // 获取当前用户信息
|
||||
authenticated.PUT("/me/password", r.handler.ChangePassword) // 修改密码
|
||||
}
|
||||
|
||||
// 管理员路由
|
||||
adminGroup := usersGroup.Group("/admin")
|
||||
adminGroup.Use(r.adminAuthMiddleware.Handle())
|
||||
{
|
||||
adminGroup.GET("/list", r.handler.ListUsers) // 管理员查看用户列表
|
||||
adminGroup.GET("/:user_id", r.handler.GetUserDetail) // 管理员获取用户详情
|
||||
adminGroup.GET("/stats", r.handler.GetUserStats) // 管理员获取用户统计信息
|
||||
}
|
||||
}
|
||||
|
||||
r.logger.Info("用户路由注册完成")
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user