Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor the URI path building code #907

Merged
merged 2 commits into from May 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
11 changes: 2 additions & 9 deletions access_application.go
Expand Up @@ -7,7 +7,6 @@ import (
"net/http"
"time"

"github.com/google/go-querystring/query"
"github.com/pkg/errors"
)

Expand Down Expand Up @@ -96,15 +95,9 @@ func (api *API) ZoneLevelAccessApplications(ctx context.Context, zoneID string,
}

func (api *API) accessApplications(ctx context.Context, id string, pageOpts PaginationOptions, routeRoot RouteRoot) ([]AccessApplication, ResultInfo, error) {
uri := fmt.Sprintf("/%s/%s/access/apps", routeRoot, id)

v, _ := query.Values(pageOpts)
queryParams := v.Encode()
if queryParams != "" {
queryParams = "?" + queryParams
}
uri := buildURI(fmt.Sprintf("/%s/%s/access/apps", routeRoot, id), pageOpts)

res, err := api.makeRequestContext(ctx, http.MethodGet, uri+queryParams, nil)
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
if err != nil {
return []AccessApplication{}, ResultInfo{}, err
}
Expand Down
11 changes: 2 additions & 9 deletions access_bookmark.go
Expand Up @@ -7,7 +7,6 @@ import (
"net/http"
"time"

"github.com/google/go-querystring/query"
"github.com/pkg/errors"
)

Expand Down Expand Up @@ -52,15 +51,9 @@ func (api *API) ZoneLevelAccessBookmarks(ctx context.Context, zoneID string, pag
}

func (api *API) accessBookmarks(ctx context.Context, id string, pageOpts PaginationOptions, routeRoot RouteRoot) ([]AccessBookmark, ResultInfo, error) {
uri := fmt.Sprintf("/%s/%s/access/bookmarks", routeRoot, id)

v, _ := query.Values(pageOpts)
queryParams := v.Encode()
if queryParams != "" {
queryParams = "?" + queryParams
}
uri := buildURI(fmt.Sprintf("/%s/%s/access/bookmarks", routeRoot, id), pageOpts)

res, err := api.makeRequestContext(ctx, http.MethodGet, uri+queryParams, nil)
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
if err != nil {
return []AccessBookmark{}, ResultInfo{}, err
}
Expand Down
20 changes: 8 additions & 12 deletions access_group.go
Expand Up @@ -7,7 +7,6 @@ import (
"net/http"
"time"

"github.com/google/go-querystring/query"
"github.com/pkg/errors"
)

Expand Down Expand Up @@ -214,19 +213,16 @@ func (api *API) ZoneLevelAccessGroups(ctx context.Context, zoneID string, pageOp
}

func (api *API) accessGroups(ctx context.Context, id string, pageOpts PaginationOptions, routeRoot RouteRoot) ([]AccessGroup, ResultInfo, error) {
uri := fmt.Sprintf(
"/%s/%s/access/groups",
routeRoot,
id,
uri := buildURI(
fmt.Sprintf(
"/%s/%s/access/groups",
routeRoot,
id,
),
pageOpts,
)

v, _ := query.Values(pageOpts)
queryParams := v.Encode()
if queryParams != "" {
queryParams = "?" + queryParams
}

res, err := api.makeRequestContext(ctx, http.MethodGet, uri+queryParams, nil)
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
if err != nil {
return []AccessGroup{}, ResultInfo{}, err
}
Expand Down
22 changes: 9 additions & 13 deletions access_policy.go
Expand Up @@ -7,7 +7,6 @@ import (
"net/http"
"time"

"github.com/google/go-querystring/query"
"github.com/pkg/errors"
)

Expand Down Expand Up @@ -77,20 +76,17 @@ func (api *API) ZoneLevelAccessPolicies(ctx context.Context, zoneID, application
}

func (api *API) accessPolicies(ctx context.Context, id string, applicationID string, pageOpts PaginationOptions, routeRoot RouteRoot) ([]AccessPolicy, ResultInfo, error) {
uri := fmt.Sprintf(
"/%s/%s/access/apps/%s/policies",
routeRoot,
id,
applicationID,
uri := buildURI(
fmt.Sprintf(
"/%s/%s/access/apps/%s/policies",
routeRoot,
id,
applicationID,
),
pageOpts,
)

v, _ := query.Values(pageOpts)
queryParams := v.Encode()
if queryParams != "" {
queryParams = "?" + queryParams
}

res, err := api.makeRequestContext(ctx, http.MethodGet, uri+queryParams, nil)
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
if err != nil {
return []AccessPolicy{}, ResultInfo{}, err
}
Expand Down
13 changes: 3 additions & 10 deletions account_members.go
Expand Up @@ -6,7 +6,6 @@ import (
"fmt"
"net/http"

"github.com/google/go-querystring/query"
"github.com/pkg/errors"
)

Expand Down Expand Up @@ -62,15 +61,9 @@ func (api *API) AccountMembers(ctx context.Context, accountID string, pageOpts P
return []AccountMember{}, ResultInfo{}, errors.New(errMissingAccountID)
}

uri := fmt.Sprintf("/accounts/%s/members", accountID)

v, _ := query.Values(pageOpts)
queryParams := v.Encode()
if queryParams != "" {
queryParams = "?" + queryParams
}
uri := buildURI(fmt.Sprintf("/accounts/%s/members", accountID), pageOpts)

res, err := api.makeRequestContext(ctx, http.MethodGet, uri+queryParams, nil)
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
if err != nil {
return []AccountMember{}, ResultInfo{}, err
}
Expand All @@ -96,7 +89,7 @@ func (api *API) CreateAccountMemberWithStatus(ctx context.Context, accountID str

uri := fmt.Sprintf("/accounts/%s/members", accountID)

var newMember = AccountMemberInvitation{
newMember := AccountMemberInvitation{
Email: emailAddress,
Roles: roles,
Status: status,
Expand Down
11 changes: 1 addition & 10 deletions accounts.go
Expand Up @@ -7,7 +7,6 @@ import (
"net/http"
"time"

"github.com/google/go-querystring/query"
"github.com/pkg/errors"
)

Expand Down Expand Up @@ -59,15 +58,7 @@ type AccountsListParams struct {
//
// API reference: https://api.cloudflare.com/#accounts-list-accounts
func (api *API) Accounts(ctx context.Context, params AccountsListParams) ([]Account, ResultInfo, error) {
uri := "/accounts"

v, _ := query.Values(params)
queryParams := v.Encode()
if queryParams != "" {
queryParams = "?" + queryParams
}

res, err := api.makeRequestContext(ctx, http.MethodGet, uri+queryParams, nil)
res, err := api.makeRequestContext(ctx, http.MethodGet, buildURI("/accounts", params), nil)
if err != nil {
return []Account{}, ResultInfo{}, err
}
Expand Down
20 changes: 7 additions & 13 deletions filter.go
Expand Up @@ -7,7 +7,6 @@ import (
"net/http"
"net/url"

"github.com/google/go-querystring/query"
"github.com/pkg/errors"
)

Expand Down Expand Up @@ -85,15 +84,9 @@ func (api *API) Filter(ctx context.Context, zoneID, filterID string) (Filter, er
//
// API reference: https://developers.cloudflare.com/firewall/api/cf-filters/get/#get-all-filters
func (api *API) Filters(ctx context.Context, zoneID string, pageOpts PaginationOptions) ([]Filter, error) {
uri := fmt.Sprintf("/zones/%s/filters", zoneID)

v, _ := query.Values(pageOpts)
queryParams := v.Encode()
if queryParams != "" {
queryParams = "?" + queryParams
}
uri := buildURI(fmt.Sprintf("/zones/%s/filters", zoneID), pageOpts)

res, err := api.makeRequestContext(ctx, http.MethodGet, uri+queryParams, nil)
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
if err != nil {
return []Filter{}, err
}
Expand Down Expand Up @@ -209,11 +202,12 @@ func (api *API) DeleteFilters(ctx context.Context, zoneID string, filterIDs []st
q.Add("id", id)
}

queryParams := "?" + q.Encode()
uri := (&url.URL{
Path: fmt.Sprintf("/zones/%s/filters", zoneID),
RawQuery: q.Encode(),
}).String()

uri := fmt.Sprintf("/zones/%s/filters", zoneID)

_, err := api.makeRequestContext(ctx, http.MethodDelete, uri+queryParams, nil)
_, err := api.makeRequestContext(ctx, http.MethodDelete, uri, nil)
if err != nil {
return err
}
Expand Down
11 changes: 2 additions & 9 deletions firewall_rules.go
Expand Up @@ -8,7 +8,6 @@ import (
"net/url"
"time"

"github.com/google/go-querystring/query"
"github.com/pkg/errors"
)

Expand Down Expand Up @@ -45,15 +44,9 @@ type FirewallRuleResponse struct {
//
// API reference: https://developers.cloudflare.com/firewall/api/cf-firewall-rules/get/#get-all-rules
func (api *API) FirewallRules(ctx context.Context, zoneID string, pageOpts PaginationOptions) ([]FirewallRule, error) {
uri := fmt.Sprintf("/zones/%s/firewall/rules", zoneID)

v, _ := query.Values(pageOpts)
queryParams := v.Encode()
if queryParams != "" {
queryParams = "?" + queryParams
}
uri := buildURI(fmt.Sprintf("/zones/%s/firewall/rules", zoneID), pageOpts)

res, err := api.makeRequestContext(ctx, http.MethodGet, uri+queryParams, nil)
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
if err != nil {
return []FirewallRule{}, err
}
Expand Down
11 changes: 2 additions & 9 deletions images.go
Expand Up @@ -10,7 +10,6 @@ import (
"net/http"
"time"

"github.com/google/go-querystring/query"
"github.com/pkg/errors"
)

Expand Down Expand Up @@ -204,15 +203,9 @@ func (api *API) CreateImageDirectUploadURL(ctx context.Context, accountID string
//
// API Reference: https://api.cloudflare.com/#cloudflare-images-list-images
func (api *API) ListImages(ctx context.Context, accountID string, pageOpts PaginationOptions) ([]Image, error) {
uri := fmt.Sprintf("/accounts/%s/images/v1", accountID)

v, _ := query.Values(pageOpts)
queryParams := v.Encode()
if queryParams != "" {
queryParams = "?" + queryParams
}
uri := buildURI(fmt.Sprintf("/accounts/%s/images/v1", accountID), pageOpts)

res, err := api.makeRequestContext(ctx, http.MethodGet, uri+queryParams, nil)
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
if err != nil {
return []Image{}, err
}
Expand Down
13 changes: 2 additions & 11 deletions notifications.go
Expand Up @@ -6,8 +6,6 @@ import (
"fmt"
"net/http"
"time"

"github.com/google/go-querystring/query"
)

// NotificationMechanismData holds a single public facing mechanism data
Expand Down Expand Up @@ -424,15 +422,8 @@ type AlertHistoryFilter struct {
//
// API Reference: https://api.cloudflare.com/#notification-history-list-history
func (api *API) ListNotificationHistory(ctx context.Context, accountID string, alertHistoryFilter AlertHistoryFilter) ([]NotificationHistory, ResultInfo, error) {
v, _ := query.Values(alertHistoryFilter)

queryParams := v.Encode()
if queryParams != "" {
queryParams = "?" + queryParams
}

baseURL := fmt.Sprintf("/accounts/%s/alerting/v3/history", accountID)
res, err := api.makeRequestContext(ctx, http.MethodGet, baseURL+queryParams, nil)
uri := buildURI(fmt.Sprintf("/accounts/%s/alerting/v3/history", accountID), alertHistoryFilter)
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
if err != nil {
return []NotificationHistory{}, ResultInfo{}, err
}
Expand Down
11 changes: 2 additions & 9 deletions pages_project.go
Expand Up @@ -7,7 +7,6 @@ import (
"net/http"
"time"

"github.com/google/go-querystring/query"
"github.com/pkg/errors"
)

Expand Down Expand Up @@ -120,15 +119,9 @@ type pagesProjectListResponse struct {
//
// API reference: https://api.cloudflare.com/#pages-project-get-projects
func (api *API) ListPagesProjects(ctx context.Context, accountID string, pageOpts PaginationOptions) ([]PagesProject, ResultInfo, error) {
uri := fmt.Sprintf("/accounts/%s/pages/projects", accountID)

v, _ := query.Values(pageOpts)
queryParams := v.Encode()
if queryParams != "" {
queryParams = "?" + queryParams
}
uri := buildURI(fmt.Sprintf("/accounts/%s/pages/projects", accountID), pageOpts)

res, err := api.makeRequestContext(ctx, http.MethodGet, uri+queryParams, nil)
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
if err != nil {
return []PagesProject{}, ResultInfo{}, err
}
Expand Down
11 changes: 2 additions & 9 deletions rate_limiting.go
Expand Up @@ -6,7 +6,6 @@ import (
"fmt"
"net/http"

"github.com/google/go-querystring/query"
"github.com/pkg/errors"
)

Expand Down Expand Up @@ -106,15 +105,9 @@ func (api *API) CreateRateLimit(ctx context.Context, zoneID string, limit RateLi
//
// API reference: https://api.cloudflare.com/#rate-limits-for-a-zone-list-rate-limits
func (api *API) ListRateLimits(ctx context.Context, zoneID string, pageOpts PaginationOptions) ([]RateLimit, ResultInfo, error) {
uri := fmt.Sprintf("/zones/%s/rate_limits", zoneID)

v, _ := query.Values(pageOpts)
queryParams := v.Encode()
if queryParams != "" {
queryParams = "?" + queryParams
}
uri := buildURI(fmt.Sprintf("/zones/%s/rate_limits", zoneID), pageOpts)

res, err := api.makeRequestContext(ctx, http.MethodGet, uri+queryParams, nil)
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
if err != nil {
return []RateLimit{}, ResultInfo{}, err
}
Expand Down
14 changes: 5 additions & 9 deletions teams_list.go
Expand Up @@ -7,7 +7,6 @@ import (
"net/http"
"time"

"github.com/google/go-querystring/query"
"github.com/pkg/errors"
)

Expand Down Expand Up @@ -125,15 +124,12 @@ func (api *API) TeamsListItems(ctx context.Context, params TeamsListItemsParams)
return []TeamsListItem{}, ResultInfo{}, ErrMissingListID
}

v, _ := query.Values(params)
queryParams := v.Encode()
if queryParams != "" {
queryParams = "?" + queryParams
}

uri := fmt.Sprintf("/%s/%s/gateway/lists/%s/items", AccountRouteRoot, params.AccountID, params.ListID)
uri := buildURI(
fmt.Sprintf("/%s/%s/gateway/lists/%s/items", AccountRouteRoot, params.AccountID, params.ListID),
params,
)

res, err := api.makeRequestContext(ctx, http.MethodGet, uri+queryParams, nil)
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
if err != nil {
return []TeamsListItem{}, ResultInfo{}, err
}
Expand Down