whitelist.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package controller
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/mhaya/game/game_cluster/nodes/webadmin/entity"
  5. "github.com/mhaya/game/game_cluster/nodes/webadmin/service"
  6. )
  7. type Whitelist struct {
  8. }
  9. func NewWhitelist() *Whitelist {
  10. return &Whitelist{}
  11. }
  12. // GetWhitelist 获取白名单
  13. // @Summary 获取白名单
  14. // @Description 获取白名单
  15. // @Tags 白名单
  16. // @Accept json
  17. // @Produce json
  18. // @Param req body entity.WhitelistListReq true "请求参数"
  19. // @Success 200 {object} []models.Whitelist "返回结果"
  20. // @Router /v1/admin/whitelist/list [post]
  21. func (w *Whitelist) GetWhitelist(ctx *gin.Context) {
  22. req := &entity.WhitelistListReq{}
  23. if err := ctx.ShouldBindJSON(req); err != nil {
  24. ctx.JSON(200, gin.H{
  25. "code": 400,
  26. "msg": err.Error(),
  27. })
  28. return
  29. }
  30. whitelists, err := new(service.Whitelist).GetAll(req)
  31. if err != nil {
  32. ctx.JSON(200, gin.H{
  33. "code": 400,
  34. "msg": err.Error(),
  35. })
  36. return
  37. }
  38. ctx.JSON(200, gin.H{
  39. "code": 200,
  40. "data": whitelists,
  41. "msg": "success",
  42. "total": req.Count,
  43. })
  44. }
  45. // AddWhitelist 新增白名单
  46. // @Summary 新增白名单
  47. // @Description 新增白名单
  48. // @Tags 白名单
  49. // @Accept json
  50. // @Produce json
  51. // @Param req body entity.WhitelistAddReq true "请求参数"
  52. // @Success 200 {object} entity.Response "返回结果"
  53. // @Router /v1/admin/whitelist/add [post]
  54. func (w *Whitelist) AddWhitelist(ctx *gin.Context) {
  55. req := &entity.WhitelistAddReq{}
  56. if err := ctx.ShouldBindJSON(req); err != nil {
  57. ctx.JSON(200, gin.H{
  58. "code": 400,
  59. "msg": err.Error(),
  60. })
  61. return
  62. }
  63. err := new(service.Whitelist).Add(req.IP, req.Desc)
  64. if err != nil {
  65. ctx.JSON(200, gin.H{
  66. "code": 400,
  67. "msg": err.Error(),
  68. })
  69. return
  70. }
  71. ctx.JSON(200, gin.H{
  72. "code": 200,
  73. })
  74. }
  75. // RemoveWhitelist 删除白名单
  76. // @Summary 删除白名单
  77. // @Description 删除白名单
  78. // @Tags 白名单
  79. // @Accept json
  80. // @Produce json
  81. // @Param req body entity.WhitelistRemoveReq true "请求参数"
  82. // @Success 200 {object} entity.Response "返回结果"
  83. // @Router /v1/admin/whitelist/remove [post]
  84. func (w *Whitelist) RemoveWhitelist(ctx *gin.Context) {
  85. req := &entity.WhitelistRemoveReq{}
  86. if err := ctx.ShouldBindJSON(req); err != nil {
  87. ctx.JSON(200, gin.H{
  88. "code": 400,
  89. "msg": err.Error(),
  90. })
  91. return
  92. }
  93. err := new(service.Whitelist).Remove(req.IP)
  94. if err != nil {
  95. ctx.JSON(200, gin.H{
  96. "code": 400,
  97. "msg": err.Error(),
  98. })
  99. return
  100. }
  101. ctx.JSON(200, gin.H{
  102. "code": 200,
  103. })
  104. }