package common import ( "be.ems/src/framework/logger" "be.ems/src/framework/middleware" "be.ems/src/modules/common/controller" "github.com/gin-gonic/gin" ) // 模块路由注册 func Setup(router *gin.Engine) { logger.Infof("开始加载 ====> common 模块路由") // 路由主页 router.GET("/", middleware.RateLimit(middleware.LimitOption{ Time: 300, Count: 10, Type: middleware.LIMIT_IP, }), controller.NewIndex.Handler, ) // 系统可暴露的配置信息 router.GET("/sys-conf", controller.NewCommon.SysConfig) // 系统引导初始化 guideGroup := router.Group("/bootloader") { guideGroup.POST("", controller.NewBootloader.Start) guideGroup.PUT("", middleware.PreAuthorize(nil), controller.NewBootloader.Done) guideGroup.DELETE("", middleware.PreAuthorize(nil), controller.NewBootloader.Reset) guideGroup.PUT("/account", middleware.PreAuthorize(nil), controller.NewBootloader.Account) } // 验证码操作 router.GET("/captcha-image", middleware.RateLimit(middleware.LimitOption{ Time: 300, Count: 60, Type: middleware.LIMIT_IP, }), controller.NewCaptcha.Image, ) // 账号身份操作处理 { router.POST("/login", middleware.RateLimit(middleware.LimitOption{ Time: 180, Count: 15, Type: middleware.LIMIT_IP, }), middleware.CryptoApi(true, true), controller.NewAccount.Login, ) router.GET("/me", middleware.PreAuthorize(nil), controller.NewAccount.Me) router.GET("/router", middleware.PreAuthorize(nil), controller.NewAccount.Router) router.POST("/logout", middleware.RateLimit(middleware.LimitOption{ Time: 120, Count: 15, Type: middleware.LIMIT_IP, }), controller.NewAccount.Logout, ) } // 账号注册操作 { router.POST("/register", middleware.RateLimit(middleware.LimitOption{ Time: 300, Count: 10, Type: middleware.LIMIT_IP, }), middleware.CryptoApi(true, true), controller.NewRegister.Register, ) } // 通用请求 commonGroup := router.Group("/common") { commonGroup.POST("/hash", middleware.PreAuthorize(nil), controller.NewCommon.Hash) commonGroup.GET("/i18n", controller.NewCommon.I18n) } // 文件操作处理 fileGroup := router.Group("/file") { fileGroup.POST("/upload", middleware.PreAuthorize(nil), controller.NewFile.Upload) fileGroup.POST("/chunk-check", middleware.PreAuthorize(nil), controller.NewFile.ChunkCheck) fileGroup.POST("/chunk-upload", middleware.PreAuthorize(nil), controller.NewFile.ChunkUpload) fileGroup.POST("/chunk-merge", middleware.PreAuthorize(nil), controller.NewFile.ChunkMerge) fileGroup.GET("/download/:filePath", middleware.PreAuthorize(nil), controller.NewFile.Download) fileGroup.POST("/transfer-static-file", middleware.PreAuthorize(nil), controller.NewFile.TransferStaticFile) } }