本文整理汇总了Golang中github.com/concourse/atc/db.PipelineDB.GetJobBuilds方法的典型用法代码示例。如果您正苦于以下问题:Golang PipelineDB.GetJobBuilds方法的具体用法?Golang PipelineDB.GetJobBuilds怎么用?Golang PipelineDB.GetJobBuilds使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/concourse/atc/db.PipelineDB
的用法示例。
在下文中一共展示了PipelineDB.GetJobBuilds方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: ListJobBuilds
func (s *Server) ListJobBuilds(pipelineDB db.PipelineDB) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
var (
builds []db.Build
err error
until int
since int
limit int
)
jobName := r.FormValue(":job_name")
urlUntil := r.FormValue(atc.PaginationQueryUntil)
until, _ = strconv.Atoi(urlUntil)
urlSince := r.FormValue(atc.PaginationQuerySince)
since, _ = strconv.Atoi(urlSince)
urlLimit := r.FormValue(atc.PaginationQueryLimit)
limit, _ = strconv.Atoi(urlLimit)
if limit == 0 {
limit = atc.PaginationAPIDefaultLimit
}
builds, pagination, err := pipelineDB.GetJobBuilds(jobName, db.Page{
Since: since,
Until: until,
Limit: limit,
})
if err != nil {
w.WriteHeader(http.StatusNotFound)
return
}
if pagination.Next != nil {
s.addNextLink(w, pipelineDB.GetPipelineName(), jobName, *pagination.Next)
}
if pagination.Previous != nil {
s.addPreviousLink(w, pipelineDB.GetPipelineName(), jobName, *pagination.Previous)
}
w.WriteHeader(http.StatusOK)
jobBuilds := make([]atc.Build, len(builds))
for i := 0; i < len(builds); i++ {
jobBuilds[i] = present.Build(builds[i])
}
json.NewEncoder(w).Encode(jobBuilds)
})
}
示例2:
BeforeEach(func() {
for i := 0; i < 10; i++ {
build, err := pipelineDB.CreateJobBuild("job-name")
Expect(err).NotTo(HaveOccurred())
_, err = pipelineDB.CreateJobBuild("other-name")
Expect(err).NotTo(HaveOccurred())
builds[i] = build
}
})
Context("when there are no builds to be found", func() {
It("returns the builds, with previous/next pages", func() {
buildsPage, pagination, err := pipelineDB.GetJobBuilds("nope", db.Page{})
Expect(err).ToNot(HaveOccurred())
Expect(buildsPage).To(Equal([]db.Build{}))
Expect(pagination).To(Equal(db.Pagination{}))
})
})
Context("with no since/until", func() {
It("returns the first page, with the given limit, and a next page", func() {
buildsPage, pagination, err := pipelineDB.GetJobBuilds("job-name", db.Page{Limit: 2})
Expect(err).ToNot(HaveOccurred())
Expect(buildsPage).To(Equal([]db.Build{builds[9], builds[8]}))
Expect(pagination.Previous).To(BeNil())
Expect(pagination.Next).To(Equal(&db.Page{Since: builds[8].ID, Limit: 2}))
})
})