Skip to content

Commit 38bd752

Browse files
authored
Merge branch 'main' into feat/build-return-created
2 parents ead5707 + 71240b4 commit 38bd752

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+5107
-4635
lines changed

api/log.go

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ package api
77
import (
88
"fmt"
99
"net/http"
10-
11-
"github.com/go-vela/server/router/middleware/org"
12-
"github.com/go-vela/server/router/middleware/user"
10+
"strconv"
1311

1412
"github.com/go-vela/server/database"
1513
"github.com/go-vela/server/router/middleware/build"
14+
"github.com/go-vela/server/router/middleware/org"
1615
"github.com/go-vela/server/router/middleware/repo"
1716
"github.com/go-vela/server/router/middleware/service"
1817
"github.com/go-vela/server/router/middleware/step"
18+
"github.com/go-vela/server/router/middleware/user"
1919
"github.com/go-vela/server/util"
2020

2121
"github.com/go-vela/types/library"
@@ -47,6 +47,17 @@ import (
4747
// description: Build number
4848
// required: true
4949
// type: integer
50+
// - in: query
51+
// name: page
52+
// description: The page of results to retrieve
53+
// type: integer
54+
// default: 1
55+
// - in: query
56+
// name: per_page
57+
// description: How many results per page to return
58+
// type: integer
59+
// maximum: 100
60+
// default: 10
5061
// security:
5162
// - ApiKeyAuth: []
5263
// responses:
@@ -82,10 +93,30 @@ func GetBuildLogs(c *gin.Context) {
8293
"user": u.GetName(),
8394
}).Infof("reading logs for build %s", entry)
8495

96+
// capture page query parameter if present
97+
page, err := strconv.Atoi(c.DefaultQuery("page", "1"))
98+
if err != nil {
99+
//nolint:lll // ignore long line length due to error message
100+
retErr := fmt.Errorf("unable to convert page query parameter for build %s: %w", entry, err)
101+
util.HandleError(c, http.StatusBadRequest, retErr)
102+
103+
return
104+
}
105+
106+
// capture per_page query parameter if present
107+
perPage, err := strconv.Atoi(c.DefaultQuery("per_page", "10"))
108+
if err != nil {
109+
retErr := fmt.Errorf("unable to convert per_page query parameter for build %s: %w", entry, err)
110+
util.HandleError(c, http.StatusBadRequest, retErr)
111+
112+
return
113+
}
114+
115+
// ensure per_page isn't above or below allowed values
116+
perPage = util.MaxInt(1, util.MinInt(100, perPage))
117+
85118
// send API call to capture the list of logs for the build
86-
//
87-
// TODO: add page and per_page query parameters
88-
l, t, err := database.FromContext(c).ListLogsForBuild(b, 1, 100)
119+
l, t, err := database.FromContext(c).ListLogsForBuild(b, page, perPage)
89120
if err != nil {
90121
retErr := fmt.Errorf("unable to get logs for build %s: %w", entry, err)
91122

@@ -96,8 +127,8 @@ func GetBuildLogs(c *gin.Context) {
96127

97128
// create pagination object
98129
pagination := Pagination{
99-
Page: 1,
100-
PerPage: 100,
130+
Page: page,
131+
PerPage: perPage,
101132
Total: t,
102133
}
103134
// set pagination headers

0 commit comments

Comments
 (0)