http.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package http
  2. import (
  3. "net/http"
  4. "go-common/app/interface/main/dm2/conf"
  5. "go-common/app/interface/main/dm2/service"
  6. "go-common/library/log"
  7. bm "go-common/library/net/http/blademaster"
  8. "go-common/library/net/http/blademaster/middleware/antispam"
  9. "go-common/library/net/http/blademaster/middleware/auth"
  10. "go-common/library/net/http/blademaster/middleware/verify"
  11. )
  12. var (
  13. dmSvc *service.Service
  14. antispamSvc *antispam.Antispam
  15. authSvc *auth.Auth
  16. verifySvc *verify.Verify
  17. )
  18. // Init http init.
  19. func Init(c *conf.Config, s *service.Service) {
  20. dmSvc = s
  21. authSvc = auth.New(c.Auth)
  22. verifySvc = verify.New(c.Verify)
  23. antispamSvc = antispam.New(c.Antispam)
  24. engine := bm.NewServer(c.HTTPServer)
  25. engine.Use(bm.Recovery(), bm.Trace(), bm.Logger())
  26. innerRouter(engine)
  27. outerRouter(engine)
  28. if err := engine.Start(); err != nil {
  29. log.Error("engine.Start() error(%v)", err)
  30. panic(err)
  31. }
  32. }
  33. // innerRouter init router api path.
  34. func innerRouter(e *bm.Engine) {
  35. group := e.Group("/x/internal/v2/dm", bm.CSRF())
  36. {
  37. group.GET("/search", verifySvc.VerifyUser, dmUpSearch)
  38. group.GET("/recent", verifySvc.VerifyUser, dmUpRecent)
  39. group.GET("/distribution", verifySvc.Verify, dmDistribution)
  40. group.POST("/edit/state", verifySvc.VerifyUser, editState)
  41. group.POST("/edit/pool", verifySvc.VerifyUser, editPool)
  42. group.POST("/mask/update", verifySvc.Verify, updateMask)
  43. group.POST("/subtitle/lan/add", verifySvc.Verify, subtitleLanAdd)
  44. group.POST("/subtitle/upos/callback", waveFormCallBack)
  45. }
  46. }
  47. func outerRouter(e *bm.Engine) {
  48. e.GET("/monitor/ping", ping)
  49. e.GET("/x/v1/dm/list.so", dmXML)
  50. group := e.Group("/x/v2/dm", bm.CSRF())
  51. {
  52. group.GET("/view", authSvc.Guest, view)
  53. group.GET("", dm)
  54. group.GET("/search", authSvc.User, dmUpSearch)
  55. group.GET("/ajax", ajaxDM)
  56. group.GET("/list.so", authSvc.Guest, dmSeg)
  57. group.GET("/list", authSvc.Guest, dmSegV2)
  58. group.GET("/judge/list", authSvc.Guest, judgeDM)
  59. group.GET("/thumbup/stats", authSvc.Guest, thumbupStats)
  60. group.GET("/history", authSvc.User, antispamSvc.ServeHTTP, dmHistory)
  61. group.GET("/history/list", authSvc.User, antispamSvc.ServeHTTP, dmHistoryV2)
  62. group.GET("/history/index", authSvc.User, antispamSvc.ServeHTTP, dmHistoryIndex)
  63. group.POST("/thumbup/add", authSvc.User, thumbupDM)
  64. group.POST("/post", authSvc.User, dmPost)
  65. group.POST("/edit/state", authSvc.User, editState)
  66. group.POST("/edit/pool", authSvc.User, editPool)
  67. group.POST("/filter/up/add", authSvc.User, antispamSvc.ServeHTTP, addUpFilterID)
  68. group.GET("/recent", authSvc.User, dmUpRecent)
  69. group.GET("/upper/config", authSvc.User, dmUpConfig)
  70. group.POST("/advance/config", authSvc.User, upAdvancePermit)
  71. group.GET("/filter/up", authSvc.User, upFilters)
  72. group.POST("/filter/up/edit", authSvc.User, editUpFilters)
  73. group.GET("/advert", authSvc.Guest, dmAdvert)
  74. subtitle := group.Group("/subtitle")
  75. {
  76. subtitle.GET("/lans", authSvc.User, subtitleLans)
  77. subtitle.POST("/del", authSvc.User, subtitleDel)
  78. subtitle.POST("/lock", authSvc.User, subtitleLock)
  79. subtitle.POST("/sign", authSvc.User, subtitleSign)
  80. subtitle.GET("/show", authSvc.User, subtitleShow)
  81. subtitle.GET("/archive/name", authSvc.User, subtitleArchiveName)
  82. subtitle.POST("/draft/save", authSvc.User, draftSave)
  83. subtitle.POST("/assit/audit", authSvc.User, assitAudit)
  84. subtitle.GET("/permission", authSvc.User, subtitlePermission)
  85. subtitle.GET("/waveform", authSvc.User, waveForm)
  86. subtitle.POST("/filter", authSvc.User, subtitleFilter)
  87. subtitle.GET("/report/tag", authSvc.User, subtitleReportTag)
  88. subtitle.POST("/report/add", authSvc.User, subtitleReportAdd)
  89. subtitle.GET("/search/assist", authSvc.User, searchAssist)
  90. subtitle.GET("/search/author/list", authSvc.User, authorList)
  91. }
  92. }
  93. }
  94. // ping check server ok.
  95. func ping(c *bm.Context) {
  96. if err := dmSvc.Ping(c); err != nil {
  97. log.Error("dm2 service ping error(%v)", err)
  98. c.AbortWithStatus(http.StatusServiceUnavailable)
  99. }
  100. }