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

Method CreateGroup

backend/api/v1/group_service.go:125–154  ·  view source on GitHub ↗

CreateGroup creates a group.

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

Source from the content-addressed store, hash-verified

123
124// CreateGroup creates a group.
125func (s *GroupService) CreateGroup(ctx context.Context, req *connect.Request[v1pb.CreateGroupRequest]) (*connect.Response[v1pb.Group], error) {
126 if err := s.licenseService.IsFeatureEnabled(ctx, common.GetWorkspaceIDFromContext(ctx), v1pb.PlanFeature_FEATURE_USER_GROUPS); err != nil {
127 return nil, connect.NewError(connect.CodePermissionDenied, err)
128 }
129 groupMessage, err := convertToGroupMessage(req.Msg)
130 if err != nil {
131 return nil, connect.NewError(connect.CodeInvalidArgument, err)
132 }
133
134 if err := validateEmailWithDomains(ctx, s.licenseService, s.store, common.GetWorkspaceIDFromContext(ctx), groupMessage.Email, true); err != nil {
135 return nil, connect.NewError(connect.CodeInvalidArgument, errors.Wrapf(err, "invalid email %q", groupMessage.Email))
136 }
137
138 groupMessage.Workspace = common.GetWorkspaceIDFromContext(ctx)
139
140 group, err := s.store.CreateGroup(ctx, groupMessage)
141 if err != nil {
142 return nil, connect.NewError(connect.CodeInternal, err)
143 }
144
145 if err := s.iamManager.ReloadCache(ctx); err != nil {
146 return nil, err
147 }
148
149 result, err := s.convertToV1Group(group)
150 if err != nil {
151 return nil, err
152 }
153 return connect.NewResponse(result), nil
154}
155
156// UpdateGroup updates a group.
157func (s *GroupService) UpdateGroup(ctx context.Context, req *connect.Request[v1pb.UpdateGroupRequest]) (*connect.Response[v1pb.Group], error) {

Callers 1

UpdateGroupMethod · 0.95

Calls 7

convertToV1GroupMethod · 0.95
convertToGroupMessageFunction · 0.85
validateEmailWithDomainsFunction · 0.85
IsFeatureEnabledMethod · 0.80
ReloadCacheMethod · 0.80
CreateGroupMethod · 0.65

Tested by

no test coverage detected