handler.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package admin
  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/admin"
  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. // Login 管理员登录
  15. // @Tags API.admin
  16. // @Router /api/login [post]
  17. Login() core.HandlerFunc
  18. // Logout 管理员登出
  19. // @Tags API.admin
  20. // @Router /api/admin/logout [post]
  21. Logout() core.HandlerFunc
  22. // ModifyPassword 修改密码
  23. // @Tags API.admin
  24. // @Router /api/admin/modify_password [patch]
  25. ModifyPassword() core.HandlerFunc
  26. // Detail 个人信息
  27. // @Tags API.admin
  28. // @Router /api/admin/info [get]
  29. Detail() core.HandlerFunc
  30. // ModifyPersonalInfo 修改个人信息
  31. // @Tags API.admin
  32. // @Router /api/admin/modify_personal_info [patch]
  33. ModifyPersonalInfo() core.HandlerFunc
  34. // Create 新增管理员
  35. // @Tags API.admin
  36. // @Router /api/admin [post]
  37. Create() core.HandlerFunc
  38. // List 管理员列表
  39. // @Tags API.admin
  40. // @Router /api/admin [get]
  41. List() core.HandlerFunc
  42. // Delete 删除管理员
  43. // @Tags API.admin
  44. // @Router /api/admin/{id} [delete]
  45. Delete() core.HandlerFunc
  46. // Offline 下线管理员
  47. // @Tags API.admin
  48. // @Router /api/admin/offline [patch]
  49. Offline() core.HandlerFunc
  50. // UpdateUsed 更新管理员为启用/禁用
  51. // @Tags API.admin
  52. // @Router /api/admin/used [patch]
  53. UpdateUsed() core.HandlerFunc
  54. // ResetPassword 重置密码
  55. // @Tags API.admin
  56. // @Router /api/admin/reset_password/{id} [patch]
  57. ResetPassword() core.HandlerFunc
  58. // CreateAdminMenu 提交菜单授权
  59. // @Tags API.admin
  60. // @Router /api/admin/menu [post]
  61. CreateAdminMenu() core.HandlerFunc
  62. // ListAdminMenu 菜单授权列表
  63. // @Tags API.admin
  64. // @Router /api/admin/menu/{id} [get]
  65. ListAdminMenu() core.HandlerFunc
  66. }
  67. type handler struct {
  68. logger *zap.Logger
  69. cache redis.Repo
  70. hashids hash.Hash
  71. adminService admin.Service
  72. }
  73. func New(logger *zap.Logger, db mysql.Repo, cache redis.Repo) Handler {
  74. return &handler{
  75. logger: logger,
  76. cache: cache,
  77. hashids: hash.New(configs.Get().HashIds.Secret, configs.Get().HashIds.Length),
  78. adminService: admin.New(db, cache),
  79. }
  80. }
  81. func (h *handler) i() {}