router.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package router
  2. import (
  3. "dsbqj-admin/app/api/hotupdate"
  4. v1 "dsbqj-admin/app/api/v1"
  5. "dsbqj-admin/middleware"
  6. "os"
  7. "github.com/gin-gonic/gin"
  8. )
  9. // NewRouter 路由配置
  10. func NewRouter() *gin.Engine {
  11. r := gin.New()
  12. // 中间件, 顺序不能改
  13. r.Use(middleware.Session(os.Getenv("SESSION_SECRET")))
  14. r.Use(middleware.Cors())
  15. r.Use(gin.Recovery())
  16. // 路由
  17. apiv1 := r.Group("/api/v1")
  18. {
  19. //apiv1.POST("upload/data", v1.UploadReport)
  20. apiv1.POST("version/check", v1.CheckVersion)
  21. apiv1.POST("version/server", v1.ServerVersion)
  22. apiv1.POST("version/external", v1.VersionExternalAuth(), v1.VersionExternalConfig)
  23. apiv1.GET("channel/all", v1.ChannelAll)
  24. }
  25. webv1 := r.Group("/web/v1")
  26. {
  27. webv1.POST("auth/login", v1.AdminLogin)
  28. authed := webv1.Group("")
  29. authed.Use(middleware.AdminAccountRequired())
  30. {
  31. authed.PUT("auth/password", v1.AdminChangePassword)
  32. authed.GET("versions", v1.ShowVersions)
  33. authed.POST("version", v1.VersionCreate)
  34. authed.PUT("version", v1.VersionEdit)
  35. authed.PUT("version/prod", v1.VersionProd)
  36. authed.DELETE("version/:key", v1.VersionDelete)
  37. authed.POST("version/reload", v1.ReloadVersion)
  38. authed.GET("channel/list", v1.ChannelList)
  39. authed.POST("channel", v1.ChannelCreate)
  40. authed.PUT("channel", v1.ChannelUpdate)
  41. authed.POST("channel/delete", v1.ChannelDelete)
  42. }
  43. }
  44. pointv1 := r.Group("/point/v1")
  45. {
  46. pointv1.POST("thinkingdata", v1.ThinkingData)
  47. }
  48. subscribev1 := r.Group("/subscribe/v1")
  49. {
  50. subscribev1.POST("/open", v1.Open) // 标记开启订阅
  51. subscribev1.POST("/close", v1.Close) // 标记关闭订阅
  52. subscribev1.POST("/check", v1.Check) // 检查用户当前订阅
  53. subscribev1.POST("/send", v1.Send) // 触发订阅直接发送
  54. subscribev1.POST("/task", v1.Task) // 触发订阅任务发送
  55. }
  56. hotupdateR := r.Group("/hotupdate")
  57. {
  58. hotupdateR.GET("/getversion", hotupdate.GetVersion)
  59. }
  60. // TODO 内网请求,需要添加ip白名单等
  61. internalR := r.Group("/internal")
  62. internalR.Use(middleware.AdminAccountRequired())
  63. {
  64. internalR.POST("/addversion", hotupdate.AddVersion)
  65. internalR.GET("/getmaxverinfo", hotupdate.GetMaxVerInfo)
  66. internalR.GET("/getversionlist", hotupdate.GetVersionList)
  67. internalR.PUT("/changestatus", hotupdate.ChangeStatus)
  68. }
  69. //webv1.Use(middleware.BodyHandler())
  70. //{
  71. //
  72. // // 需要登录保护的
  73. // authed := webv1.Group("/")
  74. //authed.Use(middleware.AdminRequired())
  75. // {
  76. //
  77. // }
  78. //
  79. return r
  80. }