role.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package controllers
  2. import (
  3. "sparrow/pkg/models"
  4. "sparrow/services/knowoapi/services"
  5. "github.com/kataras/iris/v12"
  6. )
  7. // RoleController role
  8. type RoleController struct {
  9. Ctx iris.Context
  10. Service services.RoleService
  11. Token Token
  12. }
  13. // Post “
  14. // POST /admin/role
  15. func (a *RoleController) Post() {
  16. role := new(models.Role)
  17. if err := parseBody(a.Ctx, role); err != nil {
  18. badRequest(a.Ctx, err)
  19. return
  20. }
  21. if err := a.Service.Create(role); err != nil {
  22. responseError(a.Ctx, ErrDatabase, err.Error())
  23. return
  24. }
  25. done(a.Ctx, role)
  26. }
  27. // Delete delete
  28. // DELETE /admin/role
  29. func (a *RoleController) Delete() {
  30. role := new(models.Role)
  31. // ID为1的不允许删除
  32. if role.ID == 1 {
  33. responseError(a.Ctx, ErrNormal, "普通用户角色不允许删除")
  34. return
  35. }
  36. if err := parseBody(a.Ctx, role); err != nil {
  37. badRequest(a.Ctx, err)
  38. return
  39. }
  40. if err := a.Service.Delete(role); err != nil {
  41. responseError(a.Ctx, ErrDatabase, err.Error())
  42. return
  43. }
  44. done(a.Ctx, role)
  45. }
  46. // Put delPutete
  47. // Put /admin/role
  48. func (a *RoleController) Put() {
  49. role := new(models.Role)
  50. if err := parseBody(a.Ctx, role); err != nil {
  51. badRequest(a.Ctx, err)
  52. return
  53. }
  54. if err := a.Service.Update(role); err != nil {
  55. responseError(a.Ctx, ErrDatabase, err.Error())
  56. return
  57. }
  58. done(a.Ctx, role)
  59. }
  60. // Get get roles
  61. // GET /admin/role?pi=&ps=&name
  62. func (a *RoleController) Get() {
  63. pi, err := a.Ctx.URLParamInt("pi")
  64. if err != nil {
  65. badRequest(a.Ctx, err)
  66. return
  67. }
  68. ps, err := a.Ctx.URLParamInt("ps")
  69. if err != nil {
  70. badRequest(a.Ctx, err)
  71. return
  72. }
  73. name := a.Ctx.URLParam("name")
  74. datas, total, err := a.Service.QueryAll(pi, ps, name)
  75. if err != nil {
  76. responseError(a.Ctx, ErrDatabase, err.Error())
  77. return
  78. }
  79. done(a.Ctx, map[string]interface{}{
  80. "list": datas,
  81. "total": total,
  82. })
  83. }
  84. // GetBy get role by id
  85. func (a *RoleController) GetBy(id int) {
  86. role, err := a.Service.QueryRole(id)
  87. if err != nil {
  88. responseError(a.Ctx, ErrDatabase, err.Error())
  89. return
  90. }
  91. done(a.Ctx, role)
  92. }