1package present
2
3import (
4	"strconv"
5
6	"github.com/concourse/concourse/atc"
7	"github.com/concourse/concourse/atc/db"
8	"github.com/tedsuo/rata"
9)
10
11func 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		PipelineName: build.PipelineName(),
26		TeamName:     build.TeamName(),
27		Status:       string(build.Status()),
28		APIURL:       apiURL,
29	}
30
31	if build.RerunOf() != 0 {
32		atcBuild.RerunNumber = build.RerunNumber()
33		atcBuild.RerunOf = &atc.RerunOfBuild{
34			Name: build.RerunOfName(),
35			ID:   build.RerunOf(),
36		}
37	}
38
39	if !build.StartTime().IsZero() {
40		atcBuild.StartTime = build.StartTime().Unix()
41	}
42
43	if !build.EndTime().IsZero() {
44		atcBuild.EndTime = build.EndTime().Unix()
45	}
46
47	if !build.ReapTime().IsZero() {
48		atcBuild.ReapTime = build.ReapTime().Unix()
49	}
50
51	return atcBuild
52}
53