Merge pull request #2331 from jbrockopp/master

Build List Pagination
This commit is contained in:
Brad Rydzewski 2018-02-19 14:01:33 -08:00 committed by GitHub
commit cef20f0476
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 9 deletions

View file

@ -72,7 +72,7 @@ func GetCC(c *gin.Context) {
return
}
builds, err := store.GetBuildList(c, repo)
builds, err := store.GetBuildList(c, repo, 1)
if err != nil || len(builds) == 0 {
c.AbortWithStatus(404)
return

View file

@ -25,7 +25,13 @@ import (
func GetBuilds(c *gin.Context) {
repo := session.Repo(c)
builds, err := store.GetBuildList(c, repo)
page, err := strconv.Atoi(c.DefaultQuery("page", "1"))
if err != nil {
c.AbortWithError(http.StatusBadRequest, err)
return
}
builds, err := store.GetBuildList(c, repo, page)
if err != nil {
c.AbortWithStatus(http.StatusInternalServerError)
return

View file

@ -45,9 +45,9 @@ func (db *datastore) GetBuildLastBefore(repo *model.Repo, branch string, num int
return build, err
}
func (db *datastore) GetBuildList(repo *model.Repo) ([]*model.Build, error) {
func (db *datastore) GetBuildList(repo *model.Repo, page int) ([]*model.Build, error) {
var builds = []*model.Build{}
var err = meddler.QueryAll(db, &builds, rebind(buildListQuery), repo.ID)
var err = meddler.QueryAll(db, &builds, rebind(buildListQuery), repo.ID, 50*(page-1))
return builds, err
}
@ -130,7 +130,7 @@ SELECT *
FROM builds
WHERE build_repo_id = ?
ORDER BY build_number DESC
LIMIT 50
LIMIT 50 OFFSET ?
`
const buildNumberQuery = `

View file

@ -247,7 +247,7 @@ func TestBuilds(t *testing.T) {
}
s.CreateBuild(build1, []*model.Proc{}...)
s.CreateBuild(build2, []*model.Proc{}...)
builds, err := s.GetBuildList(&model.Repo{ID: 1})
builds, err := s.GetBuildList(&model.Repo{ID: 1}, 1)
g.Assert(err == nil).IsTrue()
g.Assert(len(builds)).Equal(2)
g.Assert(builds[0].ID).Equal(build2.ID)

View file

@ -67,7 +67,7 @@ type Store interface {
GetBuildLastBefore(*model.Repo, string, int64) (*model.Build, error)
// GetBuildList gets a list of builds for the repository
GetBuildList(*model.Repo) ([]*model.Build, error)
GetBuildList(*model.Repo, int) ([]*model.Build, error)
// GetBuildQueue gets a list of build in queue.
GetBuildQueue() ([]*model.Feed, error)
@ -223,8 +223,8 @@ func GetBuildLastBefore(c context.Context, repo *model.Repo, branch string, numb
return FromContext(c).GetBuildLastBefore(repo, branch, number)
}
func GetBuildList(c context.Context, repo *model.Repo) ([]*model.Build, error) {
return FromContext(c).GetBuildList(repo)
func GetBuildList(c context.Context, repo *model.Repo, page int) ([]*model.Build, error) {
return FromContext(c).GetBuildList(repo, page)
}
func GetBuildQueue(c context.Context) ([]*model.Feed, error) {