MCPcopy Index your code
hub / github.com/bytebase/bytebase / BatchGetUsers

Method BatchGetUsers

backend/api/v1/user_service.go:83–118  ·  view source on GitHub ↗

BatchGetUsers get users in batch.

(ctx context.Context, request *connect.Request[v1pb.BatchGetUsersRequest])

Source from the content-addressed store, hash-verified

81
82// BatchGetUsers get users in batch.
83func (s *UserService) BatchGetUsers(ctx context.Context, request *connect.Request[v1pb.BatchGetUsersRequest]) (*connect.Response[v1pb.BatchGetUsersResponse], error) {
84 // Extract and validate emails from names
85 emails := make([]string, 0, len(request.Msg.Names))
86 for _, name := range request.Msg.Names {
87 email, err := common.GetUserEmail(name)
88 if err != nil {
89 return nil, connect.NewError(connect.CodeInvalidArgument, err)
90 }
91 if err := validateEndUserEmail(email); err != nil {
92 return nil, err
93 }
94 emails = append(emails, email)
95 }
96
97 // Only scope to workspace IAM in SaaS mode.
98 var workspace string
99 if s.profile.SaaS {
100 workspace = common.GetWorkspaceIDFromContext(ctx)
101 }
102 users, err := s.store.BatchGetUsersByEmails(ctx, workspace, emails)
103 if err != nil {
104 return nil, connect.NewError(connect.CodeInternal, errors.Wrapf(err, "failed to batch get users"))
105 }
106
107 // Build a map for quick lookup
108 response := &v1pb.BatchGetUsersResponse{}
109 for _, user := range users {
110 v1User, err := convertToUser(ctx, s.iamManager, user)
111 if err != nil {
112 return nil, connect.NewError(connect.CodeInternal, errors.Wrapf(err, "failed to convert user"))
113 }
114 response.Users = append(response.Users, v1User)
115 }
116
117 return connect.NewResponse(response), nil
118}
119
120// GetCurrentUser gets the current authenticated user.
121func (s *UserService) GetCurrentUser(ctx context.Context, _ *connect.Request[emptypb.Empty]) (*connect.Response[v1pb.User], error) {

Callers

nothing calls this directly

Calls 5

GetUserEmailFunction · 0.92
validateEndUserEmailFunction · 0.85
convertToUserFunction · 0.85
BatchGetUsersByEmailsMethod · 0.80

Tested by

no test coverage detected