34 lines
992 B
Go
34 lines
992 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()
|
|
|
|
accountRepository := account.NewAccountRepository(db)
|
|
accountService := account.NewAccountService(accountRepository)
|
|
accountHandler := NewAccountHandler(accountService)
|
|
accountGroup := r.Group("/account")
|
|
{
|
|
accountGroup.POST("/register", accountHandler.CreateAccount)
|
|
accountGroup.POST("/login", accountHandler.Login)
|
|
accountGroup.POST("/changePassword", accountHandler.ChangePassword)
|
|
accountGroup.POST("/findByID", accountHandler.FindByID)
|
|
accountGroup.POST("/findByUsername", accountHandler.FindByUsername)
|
|
}
|
|
protectedAccountGroup := accountGroup.Group("")
|
|
protectedAccountGroup.Use(middleware.JWTAuth())
|
|
{
|
|
protectedAccountGroup.POST("/logout", accountHandler.Logout)
|
|
protectedAccountGroup.POST("/rename", accountHandler.RenameByID)
|
|
}
|
|
|
|
return r
|
|
}
|