Skip to content

Commit a1cb63f

Browse files
committed
fix(privatenetworks): PrivateNetworksDomainsList must take a pagination.Request in argument
1 parent 75de23a commit a1cb63f

1 file changed

Lines changed: 8 additions & 17 deletions

File tree

privatenetworks.go

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,13 @@ package scalingo
22

33
import (
44
"context"
5-
"net/http"
6-
"net/url"
7-
"strconv"
85

9-
httpclient "github.com/Scalingo/go-scalingo/v10/http"
106
"github.com/Scalingo/go-utils/errors/v3"
117
"github.com/Scalingo/go-utils/pagination"
128
)
139

1410
type PrivateNetworksService interface {
15-
PrivateNetworksDomainsList(ctx context.Context, app string, page uint, perPage uint) (pagination.Paginated[[]PrivateNetworkDomain], error)
11+
PrivateNetworksDomainsList(ctx context.Context, app string, paginationReq pagination.Request) (pagination.Paginated[[]PrivateNetworkDomain], error)
1612
}
1713

1814
var _ PrivateNetworksService = (*Client)(nil)
@@ -23,28 +19,23 @@ type PrivateNetworkDomainsRes struct {
2319
Domains pagination.Paginated[[]PrivateNetworkDomain] `json:"domain_names"`
2420
}
2521

26-
func (c *Client) PrivateNetworksDomainsList(ctx context.Context, app string, page uint, perPage uint) (pagination.Paginated[[]PrivateNetworkDomain], error) {
27-
var err error
22+
func (c *Client) PrivateNetworksDomainsList(ctx context.Context, app string, paginationReq pagination.Request) (pagination.Paginated[[]PrivateNetworkDomain], error) {
2823
validationErr := errors.NewValidationErrorsBuilder()
29-
if page < 1 {
24+
if paginationReq.Page < 1 {
3025
validationErr.Set("page", "must be greater than zero")
3126
return pagination.Paginated[[]PrivateNetworkDomain]{}, validationErr.Build()
3227
}
3328

34-
if perPage < 1 || perPage > 50 {
29+
if paginationReq.PerPage < 1 || paginationReq.PerPage > 50 {
3530
validationErr.Set("per_page", "must be between 1 and 50")
3631
return pagination.Paginated[[]PrivateNetworkDomain]{}, validationErr.Build()
3732
}
3833

39-
params := url.Values{}
40-
params.Set("page", strconv.Itoa(int(page)))
41-
params.Set("per-page", strconv.Itoa(int(perPage)))
42-
req := &httpclient.APIRequest{
43-
Method: http.MethodGet,
44-
Endpoint: "/apps/" + app + "/private_network_domain_names?" + params.Encode(),
45-
}
4634
var domainRes PrivateNetworkDomainsRes
47-
err = c.ScalingoAPI().DoRequest(ctx, req, &domainRes)
35+
err := c.ScalingoAPI().SubresourceList(ctx,
36+
"apps", app, "private_network_domain_names", paginationReq.ToURLValues(),
37+
&domainRes,
38+
)
4839
if err != nil {
4940
return pagination.Paginated[[]PrivateNetworkDomain]{}, errors.Wrap(ctx, err, "make api call to list the private network domain names")
5041
}

0 commit comments

Comments
 (0)