| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | 
							- package router
 
- import (
 
- 	"github.com/gin-gonic/gin"
 
- 	"message-pusher/controller"
 
- 	"message-pusher/middleware"
 
- )
 
- func SetApiRouter(router *gin.Engine) {
 
- 	apiRouter := router.Group("/api")
 
- 	apiRouter.Use(middleware.GlobalAPIRateLimit())
 
- 	{
 
- 		apiRouter.GET("/status", controller.GetStatus)
 
- 		apiRouter.GET("/notice", controller.GetNotice)
 
- 		apiRouter.GET("/about", controller.GetAbout)
 
- 		apiRouter.GET("/verification", middleware.CriticalRateLimit(), middleware.TurnstileCheck(), controller.SendEmailVerification)
 
- 		apiRouter.GET("/reset_password", middleware.CriticalRateLimit(), middleware.TurnstileCheck(), controller.SendPasswordResetEmail)
 
- 		apiRouter.POST("/user/reset", middleware.CriticalRateLimit(), controller.ResetPassword)
 
- 		apiRouter.GET("/oauth/github", middleware.CriticalRateLimit(), controller.GitHubOAuth)
 
- 		apiRouter.GET("/oauth/wechat", middleware.CriticalRateLimit(), controller.WeChatAuth)
 
- 		apiRouter.GET("/oauth/wechat/bind", middleware.CriticalRateLimit(), middleware.UserAuth(), controller.WeChatBind)
 
- 		apiRouter.GET("/oauth/email/bind", middleware.CriticalRateLimit(), middleware.UserAuth(), controller.EmailBind)
 
- 		userRoute := apiRouter.Group("/user")
 
- 		{
 
- 			userRoute.POST("/register", middleware.CriticalRateLimit(), middleware.TurnstileCheck(), controller.Register)
 
- 			userRoute.POST("/login", middleware.CriticalRateLimit(), controller.Login)
 
- 			userRoute.GET("/logout", controller.Logout)
 
- 			selfRoute := userRoute.Group("/")
 
- 			selfRoute.Use(middleware.UserAuth(), middleware.NoTokenAuth())
 
- 			{
 
- 				selfRoute.GET("/self", controller.GetSelf)
 
- 				selfRoute.PUT("/self", controller.UpdateSelf)
 
- 				selfRoute.DELETE("/self", controller.DeleteSelf)
 
- 				selfRoute.GET("/token", controller.GenerateToken)
 
- 			}
 
- 			adminRoute := userRoute.Group("/")
 
- 			adminRoute.Use(middleware.AdminAuth(), middleware.NoTokenAuth())
 
- 			{
 
- 				adminRoute.GET("/", controller.GetAllUsers)
 
- 				adminRoute.GET("/search", controller.SearchUsers)
 
- 				adminRoute.GET("/:id", controller.GetUser)
 
- 				adminRoute.POST("/", controller.CreateUser)
 
- 				adminRoute.POST("/manage", controller.ManageUser)
 
- 				adminRoute.PUT("/", controller.UpdateUser)
 
- 				adminRoute.DELETE("/:id", controller.DeleteUser)
 
- 			}
 
- 		}
 
- 		optionRoute := apiRouter.Group("/option")
 
- 		optionRoute.Use(middleware.RootAuth(), middleware.NoTokenAuth())
 
- 		{
 
- 			optionRoute.GET("/", controller.GetOptions)
 
- 			optionRoute.PUT("/", controller.UpdateOption)
 
- 		}
 
- 	}
 
- 	pushRouter := router.Group("/push")
 
- 	pushRouter.Use(middleware.GlobalAPIRateLimit())
 
- 	{
 
- 		pushRouter.GET("/:username", controller.GetPushMessage)
 
- 		pushRouter.POST("/:username", controller.PostPushMessage)
 
- 	}
 
- }
 
 
  |