38 lines
937 B
Go
38 lines
937 B
Go
package http
|
|
|
|
import (
|
|
"feedsystem_video_go/internal/account"
|
|
"feedsystem_video_go/internal/middleware"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func SetRouter(db *gorm.DB) *gin.Engine {
|
|
r := gin.Default()
|
|
|
|
userRepository := account.NewUserRepository(db)
|
|
userService := account.NewUserService(userRepository)
|
|
userHandler := NewUserHandler(userService)
|
|
userGroup := r.Group("/user")
|
|
{
|
|
userGroup.POST("/register", userHandler.CreateUser)
|
|
userGroup.POST("/rename", userHandler.RenameByID)
|
|
userGroup.POST("/changePassword", userHandler.ChangePassword)
|
|
userGroup.POST("/findByID", userHandler.FindByID)
|
|
userGroup.POST("/findByUsername", userHandler.FindByUsername)
|
|
}
|
|
authGroup := r.Group("/auth")
|
|
{
|
|
authGroup.POST("/login", userHandler.Login)
|
|
}
|
|
|
|
protectedAuthGroup := authGroup.Group("")
|
|
protectedAuthGroup.Use(middleware.JWTAuth())
|
|
{
|
|
protectedAuthGroup.POST("/logout", userHandler.Logout)
|
|
}
|
|
|
|
return r
|
|
}
|