From 8bb6df2065ab17ed466ad3a196ae2ea337c94096 Mon Sep 17 00:00:00 2001 From: Michael Brooks Date: Mon, 28 Apr 2025 13:52:10 -0700 Subject: [PATCH] refactor: enable linter QF1008 'Omit embedded fields from selector expression' --- .golangci.yml | 1 - cmd/triggers/update.go | 2 +- internal/api/activity.go | 2 +- internal/api/app_test.go | 2 +- internal/api/auth.go | 2 +- internal/api/datastore.go | 22 +++++++++++----------- internal/api/workflows.go | 6 +++--- internal/cache/manifest.go | 4 ++-- internal/cache/manifest_test.go | 2 +- internal/pkg/apps/install.go | 6 +++--- internal/pkg/platform/deploy.go | 2 +- 11 files changed, 25 insertions(+), 26 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 4b17c618..1c5f4347 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -42,7 +42,6 @@ linters: - '-QF1012' # disable rule 'Use fmt.Fprintf instead of x.Write(fmt.Sprintf(...))' - '-QF1003' # disable rule 'Convert if/else-if chain to tagged switch' - '-QF1004' # disable rule 'Use strings.ReplaceAll instead of strings.Replace' - - '-QF1008' # disable rule 'Omit embedded fields from selector' - '-QF1011' # disable rule 'Omit redundant type from variable declaration' - '-ST1016' # disable rule 'Use consistent method receiver names' formatters: diff --git a/cmd/triggers/update.go b/cmd/triggers/update.go index 8cf06633..18aa78db 100644 --- a/cmd/triggers/update.go +++ b/cmd/triggers/update.go @@ -139,7 +139,7 @@ func runUpdateCommand(clients *shared.ClientFactory, cmd *cobra.Command) error { // If the user used --workflow and the creation failed because we were missing the interactivity // context, lets prompt and optionally add it if updateFlags.workflow != "" && extendedErr.MissingParameterDetail.Type == "slack#/types/interactivity" { - updateRequest.TriggerRequest.Inputs = api.Inputs{ + updateRequest.Inputs = api.Inputs{ extendedErr.MissingParameterDetail.Name: &api.Input{Value: dataInteractivityPayload}, } shouldUpdate, innerErr := updatePromptShouldRetryWithInteractivityFunc(cmd, clients.IO, triggerArg) diff --git a/internal/api/activity.go b/internal/api/activity.go index f6868f7d..92f5b244 100644 --- a/internal/api/activity.go +++ b/internal/api/activity.go @@ -124,7 +124,7 @@ func (c *Client) Activity(ctx context.Context, token string, activityRequest typ if !resp.Ok { return ActivityResult{}, slackerror.NewApiError(resp.Error, resp.Description, resp.Errors, appActivityMethod) } - resp.ActivityResult.NextCursor = resp.ResponseMetadata.NextCursor + resp.NextCursor = resp.ResponseMetadata.NextCursor return resp.ActivityResult, nil } diff --git a/internal/api/app_test.go b/internal/api/app_test.go index 4e2bb361..3eef4817 100644 --- a/internal/api/app_test.go +++ b/internal/api/app_test.go @@ -68,7 +68,7 @@ func TestClient_ExportAppManifest_Ok(t *testing.T) { defer teardown() result, err := c.ExportAppManifest(ctx, "token", "A0123456789") require.NoError(t, err) - require.Equal(t, "example", result.Manifest.AppManifest.DisplayInformation.Name) + require.Equal(t, "example", result.Manifest.DisplayInformation.Name) } func TestClient_ExportAppManifest_CommonErrors(t *testing.T) { diff --git a/internal/api/auth.go b/internal/api/auth.go index fed05fa2..4e0ecf75 100644 --- a/internal/api/auth.go +++ b/internal/api/auth.go @@ -110,7 +110,7 @@ func (c *Client) ExchangeAuthTicket(ctx context.Context, ticket string, challeng } // ExchangeAuthTicketResult must have a token to be valid - if resp.ExchangeAuthTicketResult.Token == "" { + if resp.Token == "" { return ExchangeAuthTicketResult{}, slackerror.New(fmt.Sprintf("No token returned from the following Slack API method %s. Login can not be completed.", exchangeAuthTicketMethod)) } diff --git a/internal/api/datastore.go b/internal/api/datastore.go index 6bdf73ca..8554eef7 100644 --- a/internal/api/datastore.go +++ b/internal/api/datastore.go @@ -136,8 +136,8 @@ func (c *Client) AppsDatastoreBulkPut(ctx context.Context, token string, request return types.AppDatastoreBulkPutResult{}, slackerror.NewApiError(resp.Error, resp.Description, resp.Errors, appDatastoreBulkPutMethod) } - if resp.AppDatastoreBulkPutResult.Datastore == "" { - resp.AppDatastoreBulkPutResult.Datastore = request.Datastore + if resp.Datastore == "" { + resp.Datastore = request.Datastore } return resp.AppDatastoreBulkPutResult, nil @@ -234,7 +234,7 @@ func (c *Client) AppsDatastoreQuery(ctx context.Context, token string, query typ return types.AppDatastoreQueryResult{}, slackerror.NewApiError(resp.Error, resp.Description, resp.Errors, appDatastoreQueryMethod) } - resp.AppDatastoreQueryResult.NextCursor = resp.baseResponse.ResponseMetadata.NextCursor + resp.NextCursor = resp.ResponseMetadata.NextCursor return resp.AppDatastoreQueryResult, nil } @@ -327,11 +327,11 @@ func (c *Client) AppsDatastoreDelete(ctx context.Context, token string, request } // the delete API doesn't return id or datastore (yet) so set it if empty - if resp.AppDatastoreDeleteResult.ID == "" { - resp.AppDatastoreDeleteResult.ID = request.ID + if resp.ID == "" { + resp.ID = request.ID } - if resp.AppDatastoreDeleteResult.Datastore == "" { - resp.AppDatastoreDeleteResult.Datastore = request.Datastore + if resp.Datastore == "" { + resp.Datastore = request.Datastore } return resp.AppDatastoreDeleteResult, nil @@ -377,8 +377,8 @@ func (c *Client) AppsDatastoreBulkDelete(ctx context.Context, token string, requ return types.AppDatastoreBulkDeleteResult{}, slackerror.NewApiError(resp.Error, resp.Description, resp.Errors, appDatastoreBulkDeleteMethod) } - if resp.AppDatastoreBulkDeleteResult.Datastore == "" { - resp.AppDatastoreBulkDeleteResult.Datastore = request.Datastore + if resp.Datastore == "" { + resp.Datastore = request.Datastore } return resp.AppDatastoreBulkDeleteResult, nil @@ -467,8 +467,8 @@ func (c *Client) AppsDatastoreBulkGet(ctx context.Context, token string, request return types.AppDatastoreBulkGetResult{}, slackerror.NewApiError(resp.Error, resp.Description, resp.Errors, appDatastoreBulkGetMethod) } - if resp.AppDatastoreBulkGetResult.Datastore == "" { - resp.AppDatastoreBulkGetResult.Datastore = request.Datastore + if resp.Datastore == "" { + resp.Datastore = request.Datastore } return resp.AppDatastoreBulkGetResult, nil diff --git a/internal/api/workflows.go b/internal/api/workflows.go index b244a21b..0367048b 100644 --- a/internal/api/workflows.go +++ b/internal/api/workflows.go @@ -207,7 +207,7 @@ func (c *Client) workflowsTriggerSave(ctx context.Context, token string, method } } - serverTrigger := resp.triggerResult.Trigger + serverTrigger := resp.Trigger return serverTrigger, nil } @@ -217,7 +217,7 @@ func parseMissingParameterErrors(details triggerCreateOrUpdateErrorDetails) ([]s var missingParameterDetail *MissingParameterDetail for _, detail := range details { slackErrorDetails = append(slackErrorDetails, detail.ErrorDetail) - if detail.MissingParameterDetail.Name != "" { + if detail.Name != "" { missingParameterDetail = &detail.MissingParameterDetail } } @@ -258,7 +258,7 @@ func (c *Client) WorkflowsTriggersList(ctx context.Context, token string, listAr return []types.DeployedTrigger{}, "", slackerror.NewApiError(resp.Error, resp.Description, resp.Errors, workflowsTriggersListMethod) } - return resp.Triggers, resp.extendedBaseResponse.ResponseMetadata.NextCursor, nil + return resp.Triggers, resp.ResponseMetadata.NextCursor, nil } // WorkflowsTriggersInfo will retrieve information on an existing trigger diff --git a/internal/cache/manifest.go b/internal/cache/manifest.go index b88f3ed4..61e2dc33 100644 --- a/internal/cache/manifest.go +++ b/internal/cache/manifest.go @@ -78,7 +78,7 @@ func (c *Cache) SetManifestHash(ctx context.Context, appID string, hash Hash) er cache[appID] = ManifestCacheApp{ Hash: hash, } - c.ManifestCache.Apps = cache + c.Apps = cache return c.writeManifestCache(ctx) } @@ -112,7 +112,7 @@ func (c *Cache) writeManifestCache(ctx context.Context) error { if err != nil && !os.IsExist(err) { return err } - cache, err := json.MarshalIndent(c.ManifestCache.Apps, "", " ") + cache, err := json.MarshalIndent(c.Apps, "", " ") if err != nil { return err } diff --git a/internal/cache/manifest_test.go b/internal/cache/manifest_test.go index 880e076d..5078cfca 100644 --- a/internal/cache/manifest_test.go +++ b/internal/cache/manifest_test.go @@ -52,7 +52,7 @@ func TestCache_Manifest(t *testing.T) { cache := NewCache(fsMock, osMock, projectDirPath) err = cache.SetManifestHash(ctx, tt.mockAppID, tt.mockCache.Hash) require.NoError(t, err) - cache.ManifestCache.Apps = map[string]ManifestCacheApp{ + cache.Apps = map[string]ManifestCacheApp{ tt.mockAppID: tt.mockCache, } hash, err := cache.GetManifestHash(ctx, tt.mockAppID) diff --git a/internal/pkg/apps/install.go b/internal/pkg/apps/install.go index c2cdc90d..293a18e8 100644 --- a/internal/pkg/apps/install.go +++ b/internal/pkg/apps/install.go @@ -86,13 +86,13 @@ func Install(ctx context.Context, clients *shared.ClientFactory, log *logger.Log return app, "", err } - log.Data["appName"] = slackYaml.AppManifest.DisplayInformation.Name + log.Data["appName"] = slackYaml.DisplayInformation.Name log.Data["isUpdate"] = app.AppID != "" log.Data["teamName"] = *authSession.TeamName log.Log("INFO", "app_install_manifest") manifest := slackYaml.AppManifest - if slackYaml.AppManifest.IsFunctionRuntimeSlackHosted() { + if slackYaml.IsFunctionRuntimeSlackHosted() { configureHostedManifest(ctx, clients, &manifest) } @@ -370,7 +370,7 @@ func InstallLocalApp(ctx context.Context, clients *shared.ClientFactory, orgGran return app, api.DeveloperAppInstallResult{}, "", err } - log.Data["appName"] = slackYaml.AppManifest.DisplayInformation.Name + log.Data["appName"] = slackYaml.DisplayInformation.Name log.Data["isUpdate"] = app.AppID != "" log.Data["teamName"] = *authSession.TeamName log.Log("INFO", "app_install_manifest") diff --git a/internal/pkg/platform/deploy.go b/internal/pkg/platform/deploy.go index 0ccf7a7b..f2444b48 100644 --- a/internal/pkg/platform/deploy.go +++ b/internal/pkg/platform/deploy.go @@ -80,7 +80,7 @@ func Deploy(ctx context.Context, clients *shared.ClientFactory, showTriggers boo if err != nil { return nil, slackerror.Wrap(err, slackerror.ErrAppManifestAccess) } - log.Data["appName"] = manifest.AppManifest.DisplayInformation.Name + log.Data["appName"] = manifest.DisplayInformation.Name if showTriggers { // Generate an optional trigger when none exist