From e8e32c03e718b60cf2fb7dc42475a6e813420590 Mon Sep 17 00:00:00 2001 From: Mark McDonnell Date: Wed, 2 Nov 2022 08:04:02 +0000 Subject: [PATCH] Address FIXME notes (#379) --- fastly/errors.go | 6 +++--- fastly/service_authorization.go | 21 +++++++++------------ fastly/service_authorization_test.go | 16 ++++++++-------- fastly/waf_rules.go | 7 +++---- fastly/waf_rules_test.go | 2 +- 5 files changed, 24 insertions(+), 28 deletions(-) diff --git a/fastly/errors.go b/fastly/errors.go index 46be4018e..0dbf8ed21 100644 --- a/fastly/errors.go +++ b/fastly/errors.go @@ -195,9 +195,9 @@ var ErrMissingServiceAuthorizationsUser = NewFieldError("User").Message("SAUser // requires a "UserID" key, but one was not set var ErrMissingUserID = NewFieldError("UserID") -// ErrMissingPermissions is an error that is returned when an input struct -// requires a "Permissions" key, but one was not set -var ErrMissingPermissions = NewFieldError("Permissions") +// ErrMissingPermission is an error that is returned when an input struct +// requires a "Permission" key, but one was not set +var ErrMissingPermission = NewFieldError("Permission") // ErrMissingServiceVersion is an error that is returned when an input struct // requires a "ServiceVersion" key, but one was not set. diff --git a/fastly/service_authorization.go b/fastly/service_authorization.go index 7c0b9863d..c4315e6fc 100644 --- a/fastly/service_authorization.go +++ b/fastly/service_authorization.go @@ -22,10 +22,9 @@ type SAService struct { } // ServiceAuthorization is the API response model. -// FIXME: Typo (DeltedAt -> DeletedAt). type ServiceAuthorization struct { CreatedAt *time.Time `jsonapi:"attr,created_at,iso8601"` - DeltedAt *time.Time `jsonapi:"attr,deleted_at,iso8601"` + DeletedAt *time.Time `jsonapi:"attr,deleted_at,iso8601"` ID string `jsonapi:"primary,service_authorization"` Permission string `jsonapi:"attr,permission,omitempty"` Service *SAService `jsonapi:"relation,service,omitempty"` @@ -33,9 +32,8 @@ type ServiceAuthorization struct { User *SAUser `jsonapi:"relation,user,omitempty"` } -// SAResponse is an object containing the list of ServiceAuthorization results. -// FIXME: Ambiguous name (SAResponse -> ServiceAuthorizations) -type SAResponse struct { +// ServiceAuthorizations is an object containing the list of ServiceAuthorization results. +type ServiceAuthorizations struct { Info infoResponse Items []*ServiceAuthorization } @@ -69,8 +67,8 @@ func (i *ListServiceAuthorizationsInput) formatFilters() map[string]string { return result } -// ListServiceAuthorizations returns the list of wafs for the configuration version. -func (c *Client) ListServiceAuthorizations(i *ListServiceAuthorizationsInput) (*SAResponse, error) { +// ListServiceAuthorizations retrieves all resources. +func (c *Client) ListServiceAuthorizations(i *ListServiceAuthorizationsInput) (*ServiceAuthorizations, error) { resp, err := c.Get("/service-authorizations", &RequestOptions{ Params: i.formatFilters(), }) @@ -100,7 +98,7 @@ func (c *Client) ListServiceAuthorizations(i *ListServiceAuthorizationsInput) (* sas[i] = typed } - return &SAResponse{ + return &ServiceAuthorizations{ Items: sas, Info: info, }, nil @@ -177,8 +175,7 @@ type UpdateServiceAuthorizationInput struct { ID string `jsonapi:"primary,service_authorization"` // The permission to grant the user to the service referenced by this service authorization. - // FIXME: Should be singular (Permissions -> Permission). - Permissions string `jsonapi:"attr,permission,omitempty"` + Permission string `jsonapi:"attr,permission,omitempty"` } // UpdateServiceAuthorization updates an exisitng service authorization. The ID must be known. @@ -187,8 +184,8 @@ func (c *Client) UpdateServiceAuthorization(i *UpdateServiceAuthorizationInput) return nil, ErrMissingID } - if i.Permissions == "" { - return nil, ErrMissingPermissions + if i.Permission == "" { + return nil, ErrMissingPermission } path := fmt.Sprintf("/service-authorizations/%s", i.ID) diff --git a/fastly/service_authorization_test.go b/fastly/service_authorization_test.go index ab3a13e4f..86ad6f06f 100644 --- a/fastly/service_authorization_test.go +++ b/fastly/service_authorization_test.go @@ -25,7 +25,7 @@ func TestClient_ServiceAuthorizations(t *testing.T) { } // List - var sasResp *SAResponse + var sasResp *ServiceAuthorizations record(t, fixtureBase+"/list", func(c *Client) { sasResp, err = c.ListServiceAuthorizations(&ListServiceAuthorizationsInput{ PageSize: 10, @@ -78,8 +78,8 @@ func TestClient_ServiceAuthorizations(t *testing.T) { var usa *ServiceAuthorization record(t, fixtureBase+"update", func(c *Client) { usa, err = c.UpdateServiceAuthorization(&UpdateServiceAuthorizationInput{ - ID: sa.ID, - Permissions: "purge_select", + ID: sa.ID, + Permission: "purge_select", }) }) if err != nil { @@ -136,18 +136,18 @@ func TestClient_CreateServiceAuthorization_validation(t *testing.T) { func TestClient_UpdateServiceAuthorization_validation(t *testing.T) { var err error _, err = testClient.UpdateServiceAuthorization(&UpdateServiceAuthorizationInput{ - ID: "", - Permissions: "", + ID: "", + Permission: "", }) if err != ErrMissingID { t.Errorf("bad error: %s", err) } _, err = testClient.UpdateServiceAuthorization(&UpdateServiceAuthorizationInput{ - ID: "my-service-authorization-id", - Permissions: "", + ID: "my-service-authorization-id", + Permission: "", }) - if err != ErrMissingPermissions { + if err != ErrMissingPermission { t.Errorf("bad error: %s", err) } } diff --git a/fastly/waf_rules.go b/fastly/waf_rules.go index c31dadfde..eafcfa9b3 100644 --- a/fastly/waf_rules.go +++ b/fastly/waf_rules.go @@ -46,8 +46,7 @@ type WAFRuleResponse struct { // ListWAFRulesInput used as input for listing WAF rules. type ListWAFRulesInput struct { // Excludes individual rules by modsecurity rule IDs. - // FIXME: Should be d not c (ExcludeMocSecIDs -> ExcludeModSecIDs) - ExcludeMocSecIDs []int + ExcludeModSecIDs []int // Limit the returned rules to a set by modsecurity rule IDs. FilterModSecIDs []int // Limit the returned rules to a set by publishers. @@ -68,7 +67,7 @@ func (i *ListWAFRulesInput) formatFilters() map[string]string { "filter[waf_tags][name][in]": i.FilterTagNames, "filter[publisher][in]": i.FilterPublishers, "filter[modsec_rule_id][in]": i.FilterModSecIDs, - "filter[modsec_rule_id][not]": i.ExcludeMocSecIDs, + "filter[modsec_rule_id][not]": i.ExcludeModSecIDs, "page[size]": i.PageSize, "page[number]": i.PageNumber, "include": i.Include, @@ -163,7 +162,7 @@ func (c *Client) ListAllWAFRules(i *ListAllWAFRulesInput) (*WAFRuleResponse, err FilterTagNames: i.FilterTagNames, FilterPublishers: i.FilterPublishers, FilterModSecIDs: i.FilterModSecIDs, - ExcludeMocSecIDs: i.ExcludeMocSecIDs, + ExcludeModSecIDs: i.ExcludeMocSecIDs, Include: i.Include, PageNumber: currentPage, PageSize: WAFPaginationPageSize, diff --git a/fastly/waf_rules_test.go b/fastly/waf_rules_test.go index 30b46b316..28c41b1ca 100644 --- a/fastly/waf_rules_test.go +++ b/fastly/waf_rules_test.go @@ -98,7 +98,7 @@ func TestClient_listWAFRules_formatFilters(t *testing.T) { FilterTagNames: []string{"tag1", "tag2"}, FilterPublishers: []string{"owasp", "trustwave"}, FilterModSecIDs: []int{1010060, 1010070}, - ExcludeMocSecIDs: []int{123456, 1234567}, + ExcludeModSecIDs: []int{123456, 1234567}, PageSize: 2, PageNumber: 2, Include: "included",