handler.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package menu
  2. import (
  3. "github.com/xinliangnote/go-gin-api/configs"
  4. "github.com/xinliangnote/go-gin-api/internal/pkg/core"
  5. "github.com/xinliangnote/go-gin-api/internal/repository/mysql"
  6. "github.com/xinliangnote/go-gin-api/internal/repository/redis"
  7. "github.com/xinliangnote/go-gin-api/internal/services/menu"
  8. "github.com/xinliangnote/go-gin-api/pkg/hash"
  9. "go.uber.org/zap"
  10. )
  11. var _ Handler = (*handler)(nil)
  12. type Handler interface {
  13. i()
  14. // Create 创建/编辑菜单
  15. // @Tags API.menu
  16. // @Router /api/menu [post]
  17. Create() core.HandlerFunc
  18. // Detail 菜单详情
  19. // @Tags API.menu
  20. // @Router /api/menu/{id} [get]
  21. Detail() core.HandlerFunc
  22. // Delete 删除菜单
  23. // @Tags API.menu
  24. // @Router /api/menu/{id} [delete]
  25. Delete() core.HandlerFunc
  26. // UpdateUsed 更新菜单为启用/禁用
  27. // @Tags API.menu
  28. // @Router /api/menu/used [patch]
  29. UpdateUsed() core.HandlerFunc
  30. // UpdateSort 更新菜单排序
  31. // @Tags API.menu
  32. // @Router /api/menu/sort [patch]
  33. UpdateSort() core.HandlerFunc
  34. // List 菜单列表
  35. // @Tags API.menu
  36. // @Router /api/menu [get]
  37. List() core.HandlerFunc
  38. // CreateAction 创建功能权限
  39. // @Tags API.menu
  40. // @Router /api/menu_action [post]
  41. CreateAction() core.HandlerFunc
  42. // ListAction 功能权限列表
  43. // @Tags API.menu
  44. // @Router /api/menu_action [get]
  45. ListAction() core.HandlerFunc
  46. // DeleteAction 删除功能权限
  47. // @Tags API.menu
  48. // @Router /api/menu_action/{id} [delete]
  49. DeleteAction() core.HandlerFunc
  50. }
  51. type handler struct {
  52. logger *zap.Logger
  53. cache redis.Repo
  54. hashids hash.Hash
  55. menuService menu.Service
  56. }
  57. func New(logger *zap.Logger, db mysql.Repo, cache redis.Repo) Handler {
  58. return &handler{
  59. logger: logger,
  60. cache: cache,
  61. hashids: hash.New(configs.Get().HashIds.Secret, configs.Get().HashIds.Length),
  62. menuService: menu.New(db, cache),
  63. }
  64. }
  65. func (h *handler) i() {}