github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/api/present/build.go (about) 1 package present 2 3 import ( 4 "strconv" 5 6 "github.com/pf-qiu/concourse/v6/atc" 7 "github.com/pf-qiu/concourse/v6/atc/db" 8 "github.com/tedsuo/rata" 9 ) 10 11 func Build(build db.Build) atc.Build { 12 13 apiURL, err := atc.Routes.CreatePathForRoute(atc.GetBuild, rata.Params{ 14 "build_id": strconv.Itoa(build.ID()), 15 "team_name": build.TeamName(), 16 }) 17 if err != nil { 18 panic("failed to generate url: " + err.Error()) 19 } 20 21 atcBuild := atc.Build{ 22 ID: build.ID(), 23 Name: build.Name(), 24 JobName: build.JobName(), 25 ResourceName: build.ResourceName(), 26 PipelineID: build.PipelineID(), 27 PipelineName: build.PipelineName(), 28 PipelineInstanceVars: build.PipelineInstanceVars(), 29 TeamName: build.TeamName(), 30 Status: atc.BuildStatus(build.Status()), 31 APIURL: apiURL, 32 } 33 34 if build.RerunOf() != 0 { 35 atcBuild.RerunNumber = build.RerunNumber() 36 atcBuild.RerunOf = &atc.RerunOfBuild{ 37 Name: build.RerunOfName(), 38 ID: build.RerunOf(), 39 } 40 } 41 42 if !build.StartTime().IsZero() { 43 atcBuild.StartTime = build.StartTime().Unix() 44 } 45 46 if !build.EndTime().IsZero() { 47 atcBuild.EndTime = build.EndTime().Unix() 48 } 49 50 if !build.ReapTime().IsZero() { 51 atcBuild.ReapTime = build.ReapTime().Unix() 52 } 53 54 return atcBuild 55 }