get_admin_role.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package admin_role
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "net/http"
  5. "sghgogs.com/sghblog/authorization-client/model/base"
  6. "sghgogs.com/sghblog/authorization-client/model/response/admin"
  7. "sghgogs.com/sghblog/authorization-client/response"
  8. "sghgogs.com/sghblog/authorization-client/utils"
  9. pb "sghgogs.com/sghblog/authorization-service/proto"
  10. "sghgogs.com/sghblog/common"
  11. "strconv"
  12. )
  13. // type AdminRoleResponse struct {
  14. // Item admin.RoleItem `json:"item"`
  15. // }
  16. // GetAdminRole
  17. // @summary 详情
  18. // @Description 获取角色详情
  19. // @Tags Role 角色管理
  20. // @Accept json
  21. // @Produce json
  22. // @Param Authorization header string true "Bearer 用户令牌"
  23. // @Param id path int true "角色ID"
  24. // @Success 200 {object} response.ApiResponse{data=admin.RoleItem} "成功"
  25. // @Failure 400 {object} response.ApiResponse "请求错误"
  26. // @Failure 500 {object} response.ApiResponse "内部错误"
  27. // @Router /v1/api/admin/role/{roleID} [get]
  28. func (svc *ApiAdminRole) GetAdminRole(c *gin.Context) {
  29. RoleID, err := strconv.ParseInt(c.Param("roleID"), 10, 64)
  30. if err != nil || RoleID <= 0 {
  31. c.JSON(http.StatusBadRequest, response.ErrorResponse(http.StatusBadRequest, common.ErrorMessage[common.InvalidRoleID]))
  32. return
  33. }
  34. ctx, _ := utils.CreateContextWithToken(c, "authorizationservice", "AdminRoleService.GetAdminRole")
  35. data, err := svc.Service.GetAdminRole(ctx, &pb.GetAdminRoleRequest{
  36. Id: RoleID,
  37. })
  38. if err != nil {
  39. code, mgs := response.MicroErrorRequest(err)
  40. c.JSON(http.StatusBadRequest, response.ErrorResponse(code, mgs))
  41. return
  42. }
  43. role := data.Role
  44. status, _ := base.MapEnumToStatus(role.Status)
  45. c.JSON(http.StatusOK, response.SuccessResponse(admin.RoleItem{
  46. ID: role.Id,
  47. Name: role.Name,
  48. Description: role.Description,
  49. Users: base.UsersToResponse(role.Users),
  50. Permissions: base.PermissionsToResponse(role.Permissions),
  51. CreatedAt: ConvertInt64ToTime(role.CreatedAt),
  52. UpdatedAt: ConvertInt64ToTime(role.UpdatedAt),
  53. Status: string(status),
  54. IsReserved: role.IsReserved,
  55. }))
  56. }