github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/pkg/platform/model/buildplanner/buildexpression.go (about) 1 package buildplanner 2 3 import ( 4 "github.com/ActiveState/cli/internal/errs" 5 "github.com/ActiveState/cli/internal/logging" 6 "github.com/ActiveState/cli/pkg/platform/api/buildplanner/request" 7 bpResp "github.com/ActiveState/cli/pkg/platform/api/buildplanner/response" 8 "github.com/ActiveState/cli/pkg/platform/runtime/buildexpression" 9 "github.com/go-openapi/strfmt" 10 ) 11 12 func (b *BuildPlanner) GetBuildExpression(commitID string) (*buildexpression.BuildExpression, error) { 13 logging.Debug("GetBuildExpression, commitID: %s", commitID) 14 resp := &bpResp.BuildExpressionResponse{} 15 err := b.client.Run(request.BuildExpression(commitID), resp) 16 if err != nil { 17 return nil, processBuildPlannerError(err, "failed to fetch build expression") 18 } 19 20 if resp.Commit == nil { 21 return nil, errs.New("Commit is nil") 22 } 23 24 if bpResp.IsErrorResponse(resp.Commit.Type) { 25 return nil, bpResp.ProcessCommitError(resp.Commit, "Could not get build expression from commit") 26 } 27 28 if resp.Commit.Expression == nil { 29 return nil, errs.New("Commit does not contain expression") 30 } 31 32 expression, err := buildexpression.New(resp.Commit.Expression) 33 if err != nil { 34 return nil, errs.Wrap(err, "failed to parse build expression") 35 } 36 37 return expression, nil 38 } 39 40 func (b *BuildPlanner) GetBuildExpressionAndTime(commitID string) (*buildexpression.BuildExpression, *strfmt.DateTime, error) { 41 logging.Debug("GetBuildExpressionAndTime, commitID: %s", commitID) 42 resp := &bpResp.BuildExpressionResponse{} 43 err := b.client.Run(request.BuildExpression(commitID), resp) 44 if err != nil { 45 return nil, nil, processBuildPlannerError(err, "failed to fetch build expression") 46 } 47 48 if resp.Commit == nil { 49 return nil, nil, errs.New("Commit is nil") 50 } 51 52 if bpResp.IsErrorResponse(resp.Commit.Type) { 53 return nil, nil, bpResp.ProcessCommitError(resp.Commit, "Could not get build expression from commit") 54 } 55 56 if resp.Commit.Expression == nil { 57 return nil, nil, errs.New("Commit does not contain expression") 58 } 59 60 expression, err := buildexpression.New(resp.Commit.Expression) 61 if err != nil { 62 return nil, nil, errs.Wrap(err, "failed to parse build expression") 63 } 64 65 return expression, &resp.Commit.AtTime, nil 66 }