Skip to content

Commit ffc429b

Browse files
committed
refactor(pagination): move paginationRequestToMap to package go-utils/pagination
1 parent 30b3625 commit ffc429b

File tree

10 files changed

+17
-26
lines changed

10 files changed

+17
-26
lines changed

deployments.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ func (c *Client) DeploymentList(ctx context.Context, app string) ([]*Deployment,
152152

153153
func (c *Client) DeploymentListWithPagination(ctx context.Context, app string, paginationReq pagination.Request) ([]*Deployment, pagination.Meta, error) {
154154
var deployments DeploymentList
155-
err := c.ScalingoAPI().SubresourceList(ctx, "apps", app, "deployments", paginationRequestToMap(paginationReq), &deployments)
155+
err := c.ScalingoAPI().SubresourceList(ctx, "apps", app, "deployments", paginationReq.ToURLValues(), &deployments)
156156
if err != nil {
157157
return []*Deployment{}, pagination.Meta{}, errors.Wrap(ctx, err, "list the deployments with pagination")
158158
}

events.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ type EventsRes struct {
3030

3131
func (c *Client) EventsList(ctx context.Context, app string, paginationReq pagination.Request) (Events, pagination.Meta, error) {
3232
var eventsRes EventsRes
33-
err := c.ScalingoAPI().SubresourceList(ctx, "apps", app, "events", paginationRequestToMap(paginationReq), &eventsRes)
33+
err := c.ScalingoAPI().SubresourceList(ctx, "apps", app, "events", paginationReq.ToURLValues(), &eventsRes)
3434
if err != nil {
3535
return nil, pagination.Meta{}, errors.Wrap(ctx, err, "list app events")
3636
}
@@ -44,7 +44,7 @@ func (c *Client) EventsList(ctx context.Context, app string, paginationReq pagin
4444
func (c *Client) UserEventsList(ctx context.Context, paginationReq pagination.Request) (Events, pagination.Meta, error) {
4545
req := &http.APIRequest{
4646
Endpoint: "/events",
47-
Params: paginationRequestToMap(paginationReq),
47+
Params: paginationReq.ToURLValues(),
4848
}
4949

5050
var eventsRes EventsRes

events_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func TestEventsList(t *testing.T) {
4949
apiMock := httpmock.NewMockClient(ctrl)
5050
client.apiClient = apiMock
5151

52-
apiMock.EXPECT().SubresourceList(gomock.Any(), "apps", c.App, "events", paginationRequestToMap(c.PaginationReq), gomock.Any()).Do(func(_ context.Context, _, _, _ string, _ any, res any) {
52+
apiMock.EXPECT().SubresourceList(gomock.Any(), "apps", c.App, "events", c.PaginationReq.ToURLValues(), gomock.Any()).Do(func(_ context.Context, _, _, _ string, _ any, res any) {
5353
err := json.Unmarshal([]byte(c.Body), &res)
5454
require.NoError(t, err)
5555
}).Return(nil)

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.24.0
44

55
require (
66
github.com/Scalingo/go-utils/errors/v3 v3.2.0
7-
github.com/Scalingo/go-utils/pagination v1.1.2
7+
github.com/Scalingo/go-utils/pagination v1.1.3-0.20260304151724-6f86a56889dd
88
github.com/golang-jwt/jwt/v5 v5.3.1
99
github.com/golang/mock v1.6.0
1010
github.com/gorilla/websocket v1.5.3

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
github.com/Scalingo/go-utils/errors/v3 v3.2.0 h1:Ks+v2oRwv3VZfe+xVB+kpfmZouXHVCPHHtwL5W60prc=
22
github.com/Scalingo/go-utils/errors/v3 v3.2.0/go.mod h1:jVVNoOdYFjuNkR/BeEZWNWJVvu4jmyLY4udlsQQyBss=
3-
github.com/Scalingo/go-utils/pagination v1.1.2 h1:DfHxWXK76F6+UyJqmJ/XIxTuwurMIJHRFfiejmPBC+8=
4-
github.com/Scalingo/go-utils/pagination v1.1.2/go.mod h1:MwT1RRecXktFgVNeib+B4dnM4r0cPc93JichOPs5tj0=
3+
github.com/Scalingo/go-utils/pagination v1.1.3-0.20260304151724-6f86a56889dd h1:Xyl43LW+DHKE7CBkWGtnh1DDz8mpVQBnSZ85mtplHLk=
4+
github.com/Scalingo/go-utils/pagination v1.1.3-0.20260304151724-6f86a56889dd/go.mod h1:MwT1RRecXktFgVNeib+B4dnM4r0cPc93JichOPs5tj0=
55
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
66
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
77
github.com/frankban/quicktest v1.2.2 h1:xfmOhhoH5fGPgbEAlhLpJH9p0z/0Qizio9osmvn9IUY=

http/api_request.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ func (c *client) Do(ctx context.Context, req *APIRequest) (*http.Response, error
8181
}
8282
body = bytes.NewReader(buffer)
8383
case http.MethodGet, http.MethodDelete:
84-
values, err := req.BuildQueryFromParams(ctx)
84+
values, err := req.buildQueryFromParams(ctx)
8585
if err != nil {
8686
return nil, errors.Wrap(ctx, err, "build the query params")
8787
}
@@ -161,7 +161,12 @@ func parseJSON(ctx context.Context, res *http.Response, data any) error {
161161
return nil
162162
}
163163

164-
func (req *APIRequest) BuildQueryFromParams(ctx context.Context) (url.Values, error) {
164+
func (req *APIRequest) buildQueryFromParams(ctx context.Context) (url.Values, error) {
165+
urlValues, ok := req.Params.(url.Values)
166+
if ok {
167+
return urlValues, nil
168+
}
169+
165170
values := url.Values{}
166171
if reflect.TypeOf(req.Params).Kind() != reflect.Map {
167172
return nil, errors.Errorf(ctx, "%#v is not a map", req.Params)

invoices.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ type InvoiceRes struct {
6161

6262
func (c *Client) InvoicesList(ctx context.Context, paginationReq pagination.Request) (Invoices, pagination.Meta, error) {
6363
var invoicesRes InvoicesRes
64-
err := c.ScalingoAPI().ResourceList(ctx, "account/invoices", paginationRequestToMap(paginationReq), &invoicesRes)
64+
err := c.ScalingoAPI().ResourceList(ctx, "account/invoices", paginationReq.ToURLValues(), &invoicesRes)
6565
if err != nil {
6666
return nil, pagination.Meta{}, errors.Wrap(ctx, err, "list invoices")
6767
}

maintenance.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ type ListMaintenanceResponse struct {
6363

6464
func (c *Client) DatabaseListMaintenance(ctx context.Context, app, addonID string, paginationReq pagination.Request) ([]*Maintenance, pagination.Meta, error) {
6565
var maintenanceRes ListMaintenanceResponse
66-
err := c.DBAPI(app, addonID).SubresourceList(ctx, "databases", addonID, "maintenance", paginationRequestToMap(paginationReq), &maintenanceRes)
66+
err := c.DBAPI(app, addonID).SubresourceList(ctx, "databases", addonID, "maintenance", paginationReq.ToURLValues(), &maintenanceRes)
6767
if err != nil {
6868
return nil, pagination.Meta{}, errors.Wrapf(ctx, err, "list database '%v' maintenance", addonID)
6969
}

pagination.go

Lines changed: 0 additions & 14 deletions
This file was deleted.

scm_repo_link.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ var _ SCMRepoLinkService = (*Client)(nil)
117117

118118
func (c *Client) SCMRepoLinkList(ctx context.Context, paginationReq pagination.Request) ([]*SCMRepoLink, pagination.Meta, error) {
119119
var res SCMRepoLinksResponse
120-
err := c.ScalingoAPI().ResourceList(ctx, "scm_repo_links", paginationRequestToMap(paginationReq), &res)
120+
err := c.ScalingoAPI().ResourceList(ctx, "scm_repo_links", paginationReq.ToURLValues(), &res)
121121
if err != nil {
122122
return nil, pagination.Meta{}, errors.Wrap(ctx, err, "list SCM repo links")
123123
}

0 commit comments

Comments
 (0)