package admin_role import ( "github.com/gin-gonic/gin" "net/http" "sghgogs.com/micro/auth-client/model/base" "sghgogs.com/micro/auth-client/model/response/admin" "sghgogs.com/micro/auth-client/response" "sghgogs.com/micro/auth-client/utils" pb "sghgogs.com/micro/auth-service/proto" "sghgogs.com/micro/common" "strconv" ) // type AdminRoleResponse struct { // Item admin.RoleItem `json:"item"` // } // GetAdminRole // @summary 详情 // @Description 获取角色详情 // @Tags Role 角色管理 // @Accept json // @Produce json // @Param Authorization header string true "Bearer 用户令牌" // @Param id path int true "角色ID" // @Success 200 {object} response.ApiResponse{data=admin.RoleItem} "成功" // @Failure 400 {object} response.ApiResponse "请求错误" // @Failure 500 {object} response.ApiResponse "内部错误" // @Router /v1/api/admin/role/{roleID} [get] func (svc *ApiAdminRole) GetAdminRole(c *gin.Context) { RoleID, err := strconv.ParseInt(c.Param("roleID"), 10, 64) if err != nil || RoleID <= 0 { c.JSON(http.StatusBadRequest, response.ErrorResponse(http.StatusBadRequest, common.ErrorMessage[common.InvalidRoleID])) return } ctx, _ := utils.CreateContextWithToken(c, "authorizationservice", "AdminRoleService.GetAdminRole") data, err := svc.Service.GetAdminRole(ctx, &pb.GetAdminRoleRequest{ Id: RoleID, }) if err != nil { code, mgs := response.MicroErrorRequest(err) c.JSON(http.StatusBadRequest, response.ErrorResponse(code, mgs)) return } role := data.Role status, _ := base.MapEnumToStatus(role.Status) c.JSON(http.StatusOK, response.SuccessResponse(admin.RoleItem{ ID: role.Id, Name: role.Name, Description: role.Description, Users: base.UsersToResponse(role.Users), Permissions: base.PermissionsToResponse(role.Permissions), CreatedAt: ConvertInt64ToTime(role.CreatedAt), UpdatedAt: ConvertInt64ToTime(role.UpdatedAt), Status: string(status), IsReserved: role.IsReserved, })) }