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

Method BatchCreateRevisions

backend/api/v1/revision_service.go:127–165  ·  view source on GitHub ↗
(
	ctx context.Context,
	req *connect.Request[v1pb.BatchCreateRevisionsRequest],
)

Source from the content-addressed store, hash-verified

125}
126
127func (s *RevisionService) BatchCreateRevisions(
128 ctx context.Context,
129 req *connect.Request[v1pb.BatchCreateRevisionsRequest],
130) (*connect.Response[v1pb.BatchCreateRevisionsResponse], error) {
131 request := req.Msg
132 instanceID, databaseName, err := common.GetInstanceDatabaseID(request.Parent)
133 if err != nil {
134 return nil, connect.NewError(connect.CodeInvalidArgument, errors.Wrapf(err, "failed to parse %q", request.Parent))
135 }
136 database, err := s.store.GetDatabase(ctx, &store.FindDatabaseMessage{
137 Workspace: common.GetWorkspaceIDFromContext(ctx),
138 InstanceID: &instanceID,
139 DatabaseName: &databaseName,
140 })
141 if err != nil {
142 return nil, connect.NewError(connect.CodeInternal, errors.Wrapf(err, "failed to get database"))
143 }
144 if database == nil {
145 return nil, connect.NewError(connect.CodeNotFound, errors.Errorf("database %v not found", request.Parent))
146 }
147
148 var revisions []*v1pb.Revision
149 for _, r := range request.Requests {
150 // Validate parent matches
151 if r.Parent != request.Parent {
152 return nil, connect.NewError(connect.CodeInvalidArgument, errors.Errorf("request parent %q does not match batch parent %q", r.Parent, request.Parent))
153 }
154 revisions = append(revisions, r.Revision)
155 }
156
157 createdRevisions, err := s.createRevisions(ctx, request.Parent, revisions, database)
158 if err != nil {
159 return nil, err
160 }
161
162 return connect.NewResponse(&v1pb.BatchCreateRevisionsResponse{
163 Revisions: createdRevisions,
164 }), nil
165}
166
167func (s *RevisionService) createRevisions(
168 ctx context.Context,

Callers

nothing calls this directly

Calls 5

createRevisionsMethod · 0.95
GetInstanceDatabaseIDFunction · 0.92
ErrorfMethod · 0.80
GetDatabaseMethod · 0.65

Tested by

no test coverage detected