http.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package http
  2. import (
  3. "net/http"
  4. "go-common/app/interface/main/dm/conf"
  5. "go-common/app/interface/main/dm/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. // service
  14. dmSvc *service.Service
  15. antispamSvc *antispam.Antispam
  16. authSvc *auth.Auth
  17. verifySvc *verify.Verify
  18. )
  19. // Init http init
  20. func Init(c *conf.Config, s *service.Service) {
  21. dmSvc = s
  22. authSvc = auth.New(c.Auth)
  23. verifySvc = verify.New(c.Verify)
  24. antispamSvc = antispam.New(c.Antispam)
  25. engine := bm.DefaultServer(c.HTTPServer)
  26. outerRouter(engine)
  27. interRouter(engine)
  28. // init external server
  29. if err := engine.Start(); err != nil {
  30. log.Error("bm.DefaultServer error(%v)", err)
  31. panic(err)
  32. }
  33. }
  34. func outerRouter(e *bm.Engine) {
  35. e.Ping(ping)
  36. group := e.Group("/x/dm")
  37. {
  38. fltGroup := group.Group("/filter")
  39. {
  40. fltGroup.GET("/user", authSvc.User, userRules)
  41. fltGroup.POST("/user/add", authSvc.User, antispamSvc.Handler(), addUserRule)
  42. fltGroup.POST("/user/add2", authSvc.User, antispamSvc.Handler(), multiAddUserRule)
  43. fltGroup.POST("/user/del", authSvc.User, delUserRules)
  44. fltGroup.GET("/global", authSvc.Guest, globalRuleEmpty)
  45. }
  46. group.POST("/protect/apply", authSvc.User, addPa)
  47. group.POST("/recall", authSvc.User, recall)
  48. group.GET("/user", authSvc.User, midHash)
  49. group.GET("/transfer/list", authSvc.User, transferList)
  50. group.POST("/transfer/retry", authSvc.User, transferRetry)
  51. group.POST("/adv/buy", authSvc.User, buyAdv)
  52. group.GET("/adv/state", authSvc.User, advState)
  53. group.GET("/up/banned/users", authSvc.User, assistBannedUsers)
  54. group.POST("/up/banned/del", authSvc.User, AssistDelBanned2)
  55. group.POST("/assist/banned", authSvc.User, assistBanned)
  56. group.POST("/assist/del", authSvc.User, assistDelete)
  57. group.POST("/report/add", authSvc.User, addReport)
  58. group.POST("/report/add2", authSvc.User, addReport2)
  59. }
  60. }
  61. func interRouter(e *bm.Engine) {
  62. group := e.Group("/x/internal/dm")
  63. {
  64. advGroup := group.Group("/adv")
  65. {
  66. advGroup.POST("/pass", verifySvc.VerifyUser, passAdv)
  67. advGroup.POST("/deny", verifySvc.VerifyUser, denyAdv)
  68. advGroup.POST("/cancel", verifySvc.VerifyUser, cancelAdv)
  69. advGroup.GET("/list", verifySvc.VerifyUser, advList)
  70. }
  71. fltGroup := group.Group("/filter")
  72. {
  73. fltGroup.POST("/global/add", verifySvc.Verify, addGlobalRule)
  74. fltGroup.POST("/global/del", verifySvc.Verify, delGlobalRules)
  75. fltGroup.GET("/index/list", verifySvc.VerifyUser, filterList)
  76. fltGroup.POST("/index/edit", verifySvc.VerifyUser, editFilter)
  77. }
  78. rptGroup := group.Group("/report")
  79. {
  80. rptGroup.POST("/up/edit", verifySvc.VerifyUser, editReport)
  81. rptGroup.GET("/up/list", verifySvc.VerifyUser, reportList)
  82. rptGroup.GET("/up/archives", verifySvc.VerifyUser, rptArchives)
  83. }
  84. prtGroup := group.Group("/up/protect/apply")
  85. {
  86. prtGroup.POST("/notice/switch", verifySvc.Verify, uptPaSwitch)
  87. prtGroup.POST("/status", verifySvc.Verify, UptPaStatus)
  88. prtGroup.GET("/list", verifySvc.Verify, paLs)
  89. prtGroup.GET("/video/list", verifySvc.Verify, paVideoLs)
  90. }
  91. group.POST("/assist/banned/upt", verifySvc.VerifyUser, assistBannedUpt)
  92. group.POST("/up/transfer", verifySvc.VerifyUser, transfer)
  93. }
  94. }
  95. // ping check server ok.
  96. func ping(c *bm.Context) {
  97. if err := dmSvc.Ping(c); err != nil {
  98. log.Error("dm service ping error(%v)", err)
  99. c.AbortWithStatus(http.StatusServiceUnavailable)
  100. }
  101. }