@@ -6,14 +6,17 @@ import (
66 "net/url"
77 "strconv"
88
9+ "github.com/sirupsen/logrus"
910 "gopkg.in/errgo.v1"
1011
1112 httpclient "github.com/Scalingo/go-scalingo/v8/http"
13+ "github.com/Scalingo/go-utils/errors/v2"
14+ "github.com/Scalingo/go-utils/logger"
1215 "github.com/Scalingo/go-utils/pagination"
1316)
1417
1518type PrivateNetworksService interface {
16- PrivateNetworksDomainsList (ctx context.Context , app string , page string , perPage string ) (pagination.Paginated [[]PrivateNetworkDomain ], error )
19+ PrivateNetworksDomainsList (ctx context.Context , app string , page uint , perPage uint ) (pagination.Paginated [[]PrivateNetworkDomain ], error )
1720}
1821
1922var _ PrivateNetworksService = (* Client )(nil )
@@ -24,26 +27,29 @@ type PrivateNetworkDomainsRes struct {
2427 Domains pagination.Paginated [[]PrivateNetworkDomain ] `json:"domain_names"`
2528}
2629
27- func (c * Client ) PrivateNetworksDomainsList (ctx context.Context , app string , page string , perPage string ) (pagination.Paginated [[]PrivateNetworkDomain ], error ) {
30+ func (c * Client ) PrivateNetworksDomainsList (ctx context.Context , app string , page uint , perPage uint ) (pagination.Paginated [[]PrivateNetworkDomain ], error ) {
31+ ctx , _ = logger .WithFieldsToCtx (ctx ,
32+ logrus.Fields {
33+ "app" : app ,
34+ "page" : page ,
35+ "per_page" : perPage ,
36+ })
37+
2838 var err error
29- pageInt := 1
30- if page != "" {
31- pageInt , err = strconv .Atoi (page )
32- if err != nil || pageInt < 1 {
33- return pagination.Paginated [[]PrivateNetworkDomain ]{}, errgo .Newf ("invalid page number: %s" , page )
34- }
39+ validationErr := errors .NewValidationErrorsBuilder ()
40+ if page < 1 {
41+ validationErr .Set ("page" , "must be greater than zero" )
42+ return pagination.Paginated [[]PrivateNetworkDomain ]{}, validationErr .Build ()
3543 }
3644
37- if perPage != "" {
38- perPageInt , err := strconv .Atoi (perPage )
39- if err != nil || perPageInt < 1 || perPageInt > 50 {
40- return pagination.Paginated [[]PrivateNetworkDomain ]{}, errgo .Newf ("invalid per_page number: %s" , perPage )
41- }
45+ if perPage < 1 || perPage > 50 {
46+ validationErr .Set ("per_page" , "must be between 1 and 50" )
47+ return pagination.Paginated [[]PrivateNetworkDomain ]{}, validationErr .Build ()
4248 }
4349
4450 params := url.Values {}
45- params .Set ("page" , strconv .Itoa (pageInt ))
46- params .Set ("per-page" , perPage )
51+ params .Set ("page" , strconv .Itoa (int ( page ) ))
52+ params .Set ("per-page" , strconv . Itoa ( int ( perPage )) )
4753 req := & httpclient.APIRequest {
4854 Method : http .MethodGet ,
4955 Endpoint : "/apps/" + app + "/private_network_domain_names?" + params .Encode (),
0 commit comments