@@ -2,17 +2,13 @@ package scalingo
22
33import (
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
1410type 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
1814var _ 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