本文整理汇总了Golang中github.com/concourse/atc/db.PipelineDB.GetResourceVersions方法的典型用法代码示例。如果您正苦于以下问题:Golang PipelineDB.GetResourceVersions方法的具体用法?Golang PipelineDB.GetResourceVersions怎么用?Golang PipelineDB.GetResourceVersions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/concourse/atc/db.PipelineDB
的用法示例。
在下文中一共展示了PipelineDB.GetResourceVersions方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: ListResourceVersions
func (s *Server) ListResourceVersions(pipelineDB db.PipelineDB) http.Handler {
logger := s.logger.Session("list-resource-versions")
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
var (
err error
until int
since int
limit int
)
resourceName := r.FormValue(":resource_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
}
versions, pagination, found, err := pipelineDB.GetResourceVersions(resourceName, db.Page{Until: until, Since: since, Limit: limit})
if err != nil {
logger.Error("failed-to-get-resource-versions", err)
w.WriteHeader(http.StatusInternalServerError)
return
}
if !found {
w.WriteHeader(http.StatusNotFound)
return
}
if pagination.Next != nil {
s.addNextLink(w, pipelineDB.GetPipelineName(), resourceName, *pagination.Next)
}
if pagination.Previous != nil {
s.addPreviousLink(w, pipelineDB.GetPipelineName(), resourceName, *pagination.Previous)
}
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
resourceVersions := make([]atc.VersionedResource, len(versions))
for i := 0; i < len(versions); i++ {
resourceVersions[i] = present.SavedVersionedResource(versions[i])
}
json.NewEncoder(w).Encode(resourceVersions)
})
}
示例2:
Resource: resource.Name,
Type: resource.Type,
Version: db.Version(version),
Metadata: nil,
PipelineName: pipelineDB.GetPipelineName(),
},
})
}
err := pipelineDB.SaveResourceVersions(resource, versions)
Expect(err).NotTo(HaveOccurred())
})
Context("when there are no versions to be found", func() {
It("returns the versions, with previous/next pages", func() {
historyPage, pagination, err := pipelineDB.GetResourceVersions("nope", db.Page{})
Expect(err).ToNot(HaveOccurred())
Expect(historyPage).To(Equal([]db.SavedVersionedResource{}))
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() {
historyPage, pagination, err := pipelineDB.GetResourceVersions("some-resource", db.Page{Limit: 2})
Expect(err).ToNot(HaveOccurred())
Expect(historyPage).To(Equal([]db.SavedVersionedResource{expectedVersions[9], expectedVersions[8]}))
Expect(pagination.Previous).To(BeNil())
Expect(pagination.Next).To(Equal(&db.Page{Since: expectedVersions[8].ID, Limit: 2}))
})
})