gameshield.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package handler
  2. import (
  3. "github.com/gin-gonic/gin"
  4. v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
  5. "github.com/go-nunu/nunu-layout-advanced/internal/service"
  6. "github.com/go-nunu/nunu-layout-advanced/internal/service/api/gameShield"
  7. "net/http"
  8. )
  9. type GameShieldHandler struct {
  10. *Handler
  11. gameShieldService gameShield.GameShieldService
  12. crawlerService service.CrawlerService
  13. }
  14. func NewGameShieldHandler(
  15. handler *Handler,
  16. gameShieldService gameShield.GameShieldService,
  17. crawlerService service.CrawlerService,
  18. ) *GameShieldHandler {
  19. return &GameShieldHandler{
  20. Handler: handler,
  21. gameShieldService: gameShieldService,
  22. crawlerService: crawlerService,
  23. }
  24. }
  25. func (h *GameShieldHandler) SubmitGameShield(ctx *gin.Context) {
  26. req := new(v1.GameShieldSubmitRequest)
  27. if err := ctx.ShouldBind(req); err != nil {
  28. v1.HandleError(ctx, http.StatusBadRequest, v1.ErrBadRequest, err.Error())
  29. return
  30. }
  31. res, err := h.gameShieldService.SubmitGameShield(ctx, req)
  32. if err != nil {
  33. v1.HandleError(ctx, http.StatusInternalServerError, err, err.Error())
  34. return
  35. }
  36. v1.HandleSuccess(ctx, res)
  37. }
  38. func (h *GameShieldHandler) EditGameShield(ctx *gin.Context) {
  39. req := new(v1.GameShieldSubmitRequest)
  40. if err := ctx.ShouldBind(req); err != nil {
  41. v1.HandleError(ctx, http.StatusBadRequest, v1.ErrBadRequest, err)
  42. return
  43. }
  44. res, err := h.gameShieldService.EditGameShield(ctx, req)
  45. if err != nil {
  46. v1.HandleError(ctx, http.StatusInternalServerError, err, err.Error())
  47. return
  48. }
  49. v1.HandleSuccess(ctx, res)
  50. }
  51. func (h *GameShieldHandler) GetGameShieldField(ctx *gin.Context) {
  52. req := new(v1.GetGameShieldRuleIdRequest)
  53. if err := ctx.ShouldBind(req); err != nil {
  54. v1.HandleError(ctx, http.StatusBadRequest, v1.ErrBadRequest, err)
  55. return
  56. }
  57. val, err := h.crawlerService.GetField(ctx, req.AppName)
  58. res, exists := val[req.Name] // name 例如 "rule_id"、"priority" 等
  59. if !exists {
  60. v1.HandleError(ctx, http.StatusBadRequest, v1.ErrBadRequest, "field not exists")
  61. return
  62. }
  63. if err != nil {
  64. v1.HandleError(ctx, http.StatusInternalServerError, err, err.Error())
  65. return
  66. }
  67. v1.HandleSuccess(ctx, res)
  68. }
  69. func (h *GameShieldHandler) GetGameShieldKey(ctx *gin.Context) {
  70. req := new(v1.GetGameShieldRuleIdRequest)
  71. if err := ctx.ShouldBind(req); err != nil {
  72. v1.HandleError(ctx, http.StatusBadRequest, v1.ErrBadRequest, err.Error())
  73. return
  74. }
  75. res, err := h.gameShieldService.GetGameShieldKey(ctx, req.HostId)
  76. if err != nil {
  77. v1.HandleError(ctx, http.StatusInternalServerError, err, err.Error())
  78. return
  79. }
  80. v1.HandleSuccess(ctx, res)
  81. }
  82. func (h *GameShieldHandler) DeleteGameShield(ctx *gin.Context) {
  83. req := new(v1.GameShieldRuleIdRequest)
  84. if err := ctx.ShouldBind(req); err != nil {
  85. v1.HandleError(ctx, http.StatusBadRequest, v1.ErrBadRequest, err.Error())
  86. return
  87. }
  88. res, err := h.gameShieldService.DeleteGameShield(ctx, req.RuleId)
  89. if err != nil {
  90. v1.HandleError(ctx, http.StatusInternalServerError, err, err.Error())
  91. return
  92. }
  93. v1.HandleSuccess(ctx, res)
  94. }
  95. func (h *GameShieldHandler) GetGameShieldOnlineList(ctx *gin.Context) {
  96. req := new(v1.GameShieldRuleIdRequest)
  97. if err := ctx.ShouldBind(req); err != nil {
  98. v1.HandleError(ctx, http.StatusBadRequest, v1.ErrBadRequest, err.Error())
  99. return
  100. }
  101. res, err := h.gameShieldService.GetGameShieldOnlineList(ctx, req.RuleId)
  102. if err != nil {
  103. v1.HandleError(ctx, http.StatusInternalServerError, err, err.Error())
  104. return
  105. }
  106. v1.HandleSuccess(ctx, res)
  107. }
  108. func (h *GameShieldHandler) IsExistGameShieldKey(ctx *gin.Context) {
  109. req := new(v1.KeyAndFieldResponse)
  110. if err := ctx.ShouldBind(req); err != nil {
  111. v1.HandleError(ctx, http.StatusBadRequest, v1.ErrBadRequest, err.Error())
  112. return
  113. }
  114. res, err := h.gameShieldService.IsExistGameShieldKey(ctx, req.Key)
  115. if err != nil {
  116. v1.HandleError(ctx, http.StatusInternalServerError, err, err.Error())
  117. return
  118. }
  119. v1.HandleSuccess(ctx, res)
  120. }