MCPcopy Create free account
hub / github.com/bytebase/bytebase / GetRole

Method GetRole

backend/api/v1/role_service.go:51–68  ·  view source on GitHub ↗

GetRole gets a role.

(ctx context.Context, req *connect.Request[v1pb.GetRoleRequest])

Source from the content-addressed store, hash-verified

49
50// GetRole gets a role.
51func (s *RoleService) GetRole(ctx context.Context, req *connect.Request[v1pb.GetRoleRequest]) (*connect.Response[v1pb.Role], error) {
52 roleName := req.Msg.Name
53 roleID, err := common.GetRoleID(roleName)
54 if err != nil {
55 return nil, connect.NewError(connect.CodeInvalidArgument, err)
56 }
57 role, err := s.store.GetRole(ctx, &store.FindRoleMessage{Workspace: common.GetWorkspaceIDFromContext(ctx), ResourceID: &roleID})
58 if err != nil {
59 return nil, connect.NewError(connect.CodeInternal, errors.Wrap(err, "failed to get role"))
60 }
61 if role != nil {
62 return connect.NewResponse(convertToRole(role)), nil
63 }
64 if predefinedRole := s.getBuildinRole(roleID); predefinedRole != nil {
65 return connect.NewResponse(convertToRole(predefinedRole)), nil
66 }
67 return nil, connect.NewError(connect.CodeNotFound, errors.Errorf("role not found: %s", roleID))
68}
69
70func (*RoleService) getBuildinRole(roleID string) *store.RoleMessage {
71 return store.GetPredefinedRole(roleID)

Callers

nothing calls this directly

Calls 6

getBuildinRoleMethod · 0.95
GetRoleIDFunction · 0.92
convertToRoleFunction · 0.85
ErrorfMethod · 0.80
GetRoleMethod · 0.65

Tested by

no test coverage detected