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

Method SearchWorksheets

backend/api/v1/worksheet_service.go:131–178  ·  view source on GitHub ↗

SearchWorksheets returns a list of worksheets based on the search filters.

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

Source from the content-addressed store, hash-verified

129
130// SearchWorksheets returns a list of worksheets based on the search filters.
131func (s *WorksheetService) SearchWorksheets(
132 ctx context.Context,
133 req *connect.Request[v1pb.SearchWorksheetsRequest],
134) (*connect.Response[v1pb.SearchWorksheetsResponse], error) {
135 request := req.Msg
136 user, ok := GetUserFromContext(ctx)
137 if !ok {
138 return nil, connect.NewError(connect.CodeInternal, errors.Errorf("user not found"))
139 }
140
141 projectID, err := common.GetProjectID(request.Parent)
142 if err != nil {
143 return nil, connect.NewError(connect.CodeInvalidArgument, err)
144 }
145
146 worksheetFind := &store.FindWorkSheetMessage{
147 ProjectIDs: []string{projectID},
148 PrincipalEmail: user.Email,
149 }
150
151 filterQ, err := store.GetListSheetFilter(ctx, s.store, user.Email, request.Filter)
152 if err != nil {
153 return nil, connect.NewError(connect.CodeInvalidArgument, err)
154 }
155 worksheetFind.FilterQ = filterQ
156
157 worksheetList, err := s.store.ListWorkSheets(ctx, worksheetFind)
158 if err != nil {
159 return nil, connect.NewError(connect.CodeInternal, errors.Errorf("failed to list worksheets: %v", err))
160 }
161
162 var v1pbWorksheets []*v1pb.Worksheet
163 for _, worksheet := range worksheetList {
164 ok, err := s.canReadWorksheet(ctx, worksheet)
165 if err != nil {
166 return nil, connect.NewError(connect.CodeInternal, errors.Errorf("failed to check access with error: %v", err))
167 }
168 if !ok {
169 slog.Warn("cannot access worksheet", slog.String("name", worksheet.Title))
170 continue
171 }
172 v1pbWorksheet := convertToAPIWorksheetMessage(worksheet)
173 v1pbWorksheets = append(v1pbWorksheets, v1pbWorksheet)
174 }
175 return connect.NewResponse(&v1pb.SearchWorksheetsResponse{
176 Worksheets: v1pbWorksheets,
177 }), nil
178}
179
180// UpdateWorksheet updates a worksheet.
181func (s *WorksheetService) UpdateWorksheet(

Callers

nothing calls this directly

Calls 8

canReadWorksheetMethod · 0.95
GetProjectIDFunction · 0.92
GetListSheetFilterFunction · 0.92
GetUserFromContextFunction · 0.85
ErrorfMethod · 0.80
ListWorkSheetsMethod · 0.80
StringMethod · 0.65

Tested by

no test coverage detected