(ctx context.Context, _ *connect.Request[v1pb.ListWorkspacesRequest])
| 118 | } |
| 119 | |
| 120 | func (s *WorkspaceService) ListWorkspaces(ctx context.Context, _ *connect.Request[v1pb.ListWorkspacesRequest]) (*connect.Response[v1pb.ListWorkspacesResponse], error) { |
| 121 | user, ok := GetUserFromContext(ctx) |
| 122 | if !ok || user == nil { |
| 123 | return nil, connect.NewError(connect.CodeUnauthenticated, errors.New("user not found")) |
| 124 | } |
| 125 | |
| 126 | workspaces, err := s.store.ListWorkspacesByEmail(ctx, &store.FindWorkspaceMessage{ |
| 127 | Email: user.Email, |
| 128 | IncludeAllUser: !s.profile.SaaS, |
| 129 | }) |
| 130 | if err != nil { |
| 131 | return nil, connect.NewError(connect.CodeInternal, errors.Wrap(err, "failed to find workspaces")) |
| 132 | } |
| 133 | |
| 134 | var result []*v1pb.Workspace |
| 135 | for _, ws := range workspaces { |
| 136 | result = append(result, &v1pb.Workspace{ |
| 137 | Name: common.FormatWorkspace(ws.ResourceID), |
| 138 | Title: ws.Payload.GetTitle(), |
| 139 | Logo: ws.Payload.GetLogo(), |
| 140 | }) |
| 141 | } |
| 142 | return connect.NewResponse(&v1pb.ListWorkspacesResponse{Workspaces: result}), nil |
| 143 | } |
| 144 | |
| 145 | func (s *WorkspaceService) UpdateWorkspace(ctx context.Context, req *connect.Request[v1pb.UpdateWorkspaceRequest]) (*connect.Response[v1pb.Workspace], error) { |
| 146 | ws := req.Msg.Workspace |
nothing calls this directly
no test coverage detected