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

Method CreateSheet

backend/api/v1/sheet_service.go:30–61  ·  view source on GitHub ↗

CreateSheet creates a new sheet.

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

Source from the content-addressed store, hash-verified

28
29// CreateSheet creates a new sheet.
30func (s *SheetService) CreateSheet(ctx context.Context, request *connect.Request[v1pb.CreateSheetRequest]) (*connect.Response[v1pb.Sheet], error) {
31 if request.Msg.Sheet == nil {
32 return nil, connect.NewError(connect.CodeInvalidArgument, errors.Errorf("sheet must be set"))
33 }
34
35 projectResourceID, err := common.GetProjectID(request.Msg.Parent)
36 if err != nil {
37 return nil, connect.NewError(connect.CodeInvalidArgument, err)
38 }
39 project, err := s.store.GetProject(ctx, &store.FindProjectMessage{
40 Workspace: common.GetWorkspaceIDFromContext(ctx),
41 ResourceID: &projectResourceID,
42 })
43 if err != nil {
44 return nil, connect.NewError(connect.CodeInternal, errors.Wrapf(err, "failed to get project with resource id %q", projectResourceID))
45 }
46 if project == nil {
47 return nil, connect.NewError(connect.CodeNotFound, errors.Errorf("project with resource id %q not found", projectResourceID))
48 }
49 if project.Deleted {
50 return nil, connect.NewError(connect.CodeNotFound, errors.Errorf("project with resource id %q had deleted", projectResourceID))
51 }
52
53 storeSheetCreate := convertToStoreSheetMessage(request.Msg.Sheet)
54 sheets, err := s.store.CreateSheets(ctx, storeSheetCreate)
55 if err != nil {
56 return nil, connect.NewError(connect.CodeInternal, errors.Wrapf(err, "failed to create sheet"))
57 }
58 sheet := sheets[0]
59 v1pbSheet := convertToAPISheetMessage(project.ResourceID, sheet)
60 return connect.NewResponse(v1pbSheet), nil
61}
62
63func (s *SheetService) BatchCreateSheets(ctx context.Context, request *connect.Request[v1pb.BatchCreateSheetsRequest]) (*connect.Response[v1pb.BatchCreateSheetsResponse], error) {
64 if len(request.Msg.Requests) == 0 {

Callers

nothing calls this directly

Calls 7

GetProjectIDFunction · 0.92
convertToAPISheetMessageFunction · 0.85
ErrorfMethod · 0.80
CreateSheetsMethod · 0.80
GetProjectMethod · 0.65

Tested by

no test coverage detected