| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- package router
- import (
- "dsbqj-admin/app/api/hotupdate"
- v1 "dsbqj-admin/app/api/v1"
- "dsbqj-admin/middleware"
- "os"
- "github.com/gin-gonic/gin"
- )
- func newBaseRouter() *gin.Engine {
- r := gin.New()
- // 中间件, 顺序不能改
- r.Use(middleware.Session(os.Getenv("SESSION_SECRET")))
- r.Use(middleware.Cors())
- r.Use(gin.Recovery())
- return r
- }
- // NewRouter 路由配置
- func NewRouter() *gin.Engine {
- r := newBaseRouter()
- registerVersionRouter(r)
- registerAdminRouter(r)
- registerPointRouter(r)
- registerSubscribeRouter(r)
- registerHotUpdateRouter(r)
- registerReportRouter(r)
- return r
- }
- // NewAdminRouter 后台管理服务路由
- func NewAdminRouter() *gin.Engine {
- r := newBaseRouter()
- registerVersionRouter(r)
- registerAdminRouter(r)
- registerHotUpdateRouter(r)
- return r
- }
- // NewPointRouter 埋点服务路由
- func NewPointRouter() *gin.Engine {
- r := newBaseRouter()
- registerPointRouter(r)
- return r
- }
- // NewReportRouter 客户端上报服务路由
- func NewReportRouter() *gin.Engine {
- r := newBaseRouter()
- registerReportRouter(r)
- return r
- }
- // NewSubscribeRouter 订阅服务路由
- func NewSubscribeRouter() *gin.Engine {
- r := newBaseRouter()
- registerSubscribeRouter(r)
- return r
- }
- func registerVersionRouter(r *gin.Engine) {
- apiv1 := r.Group("/api/v1")
- {
- apiv1.POST("version/check", v1.CheckVersion)
- apiv1.POST("version/server", v1.ServerVersion)
- apiv1.POST("version/external", v1.VersionExternalAuth(), v1.VersionExternalConfig)
- apiv1.GET("channel/all", v1.ChannelAll)
- }
- }
- func registerAdminRouter(r *gin.Engine) {
- webv1 := r.Group("/web/v1")
- {
- webv1.POST("auth/login", v1.AdminLogin)
- authed := webv1.Group("")
- authed.Use(middleware.AdminAccountRequired())
- {
- authed.PUT("auth/password", v1.AdminChangePassword)
- authed.GET("versions", v1.ShowVersions)
- authed.POST("version", v1.VersionCreate)
- authed.PUT("version", v1.VersionEdit)
- authed.PUT("version/prod", v1.VersionProd)
- authed.DELETE("version/:key", v1.VersionDelete)
- authed.POST("version/reload", v1.ReloadVersion)
- authed.GET("channel/list", v1.ChannelList)
- authed.POST("channel", v1.ChannelCreate)
- authed.PUT("channel", v1.ChannelUpdate)
- authed.POST("channel/delete", v1.ChannelDelete)
- }
- }
- }
- func registerPointRouter(r *gin.Engine) {
- pointv1 := r.Group("/point/v1")
- {
- pointv1.POST("thinkingdata", v1.ThinkingData)
- }
- }
- func registerSubscribeRouter(r *gin.Engine) {
- subscribev1 := r.Group("/subscribe/v1")
- {
- subscribev1.POST("/open", v1.Open) // 标记开启订阅
- subscribev1.POST("/close", v1.Close) // 标记关闭订阅
- subscribev1.POST("/check", v1.Check) // 检查用户当前订阅
- subscribev1.POST("/send", v1.Send) // 触发订阅直接发送
- subscribev1.POST("/task", v1.Task) // 触发订阅任务发送
- }
- }
- func registerHotUpdateRouter(r *gin.Engine) {
- hotupdateR := r.Group("/hotupdate")
- {
- hotupdateR.GET("/getversion", hotupdate.GetVersion)
- }
- // TODO 内网请求,需要添加ip白名单等
- internalR := r.Group("/internal")
- internalR.Use(middleware.AdminAccountRequired())
- {
- internalR.POST("/addversion", hotupdate.AddVersion)
- internalR.GET("/getmaxverinfo", hotupdate.GetMaxVerInfo)
- internalR.GET("/getversionlist", hotupdate.GetVersionList)
- internalR.PUT("/changestatus", hotupdate.ChangeStatus)
- }
- //webv1.Use(middleware.BodyHandler())
- //{
- //
- // // 需要登录保护的
- // authed := webv1.Group("/")
- //authed.Use(middleware.AdminRequired())
- // {
- //
- // }
- //
- }
- func registerReportRouter(r *gin.Engine) {
- apiv1 := r.Group("/api/v1")
- {
- apiv1.POST("upload/data", v1.UploadReport)
- }
- }
|