diff --git a/cmd/app/delete.go b/cmd/app/delete.go index 2ae6ae43..30d3264b 100644 --- a/cmd/app/delete.go +++ b/cmd/app/delete.go @@ -20,7 +20,6 @@ import ( "github.com/slackapi/slack-cli/internal/cmdutil" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/apps" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" @@ -99,30 +98,14 @@ func RunDeleteCommand(ctx context.Context, clients *shared.ClientFactory, cmd *c } } - // Set up event logger and execute the command - log := newDeleteLogger(clients, cmd, team) - log.Data["appID"] = selection.App.AppID - env, err := apps.Delete(ctx, clients, log, team, selection.App, selection.Auth) - - return env, err -} + // Execute the command + env, teamName, err := apps.Delete(ctx, clients, team, selection.App, selection.Auth) + if err != nil { + return env, err + } + printDeleteApp(ctx, clients, selection.App.AppID, teamName) -// newDeleteLogger creates a logger instance to receive event notifications -func newDeleteLogger(clients *shared.ClientFactory, cmd *cobra.Command, envName string) *logger.Logger { - ctx := cmd.Context() - return logger.New( - // OnEvent - func(event *logger.LogEvent) { - appID := event.DataToString("appID") - teamName := event.DataToString("teamName") - switch event.Name { - case "on_apps_delete_app_success": - printDeleteApp(ctx, clients, appID, teamName) - default: - // Ignore the event - } - }, - ) + return env, nil } func confirmDeletion(ctx context.Context, IO iostreams.IOStreamer, app prompts.SelectedApp) (bool, error) { diff --git a/cmd/app/uninstall.go b/cmd/app/uninstall.go index 9fca5027..6fde4ec9 100644 --- a/cmd/app/uninstall.go +++ b/cmd/app/uninstall.go @@ -20,7 +20,6 @@ import ( "github.com/slackapi/slack-cli/internal/cmdutil" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/apps" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" @@ -94,30 +93,14 @@ func RunUninstallCommand(ctx context.Context, clients *shared.ClientFactory, cmd } } - // Set up event logger and execute the command - log := newUninstallLogger(clients, cmd, teamDomain) - log.Data["appID"] = selection.App.AppID - env, err := apps.Uninstall(ctx, clients, log, teamDomain, selection.App, selection.Auth) - - return env, err -} + // Execute the command + env, teamName, err := apps.Uninstall(ctx, clients, teamDomain, selection.App, selection.Auth) + if err != nil { + return env, err + } + printUninstallApp(ctx, clients, selection.App.AppID, teamName) -// newUninstallLogger creates a logger instance to receive event notifications -func newUninstallLogger(clients *shared.ClientFactory, cmd *cobra.Command, envName string) *logger.Logger { - ctx := cmd.Context() - return logger.New( - // OnEvent - func(event *logger.LogEvent) { - appID := event.DataToString("appID") - teamName := event.DataToString("teamName") - switch event.Name { - case "on_apps_uninstall_app_success": - printUninstallApp(ctx, clients, appID, teamName) - default: - // Ignore the event - } - }, - ) + return env, nil } func confirmUninstall(ctx context.Context, IO iostreams.IOStreamer, cmd *cobra.Command, selection prompts.SelectedApp) (bool, error) { diff --git a/cmd/auth/auth_test.go b/cmd/auth/auth_test.go index 9f37d6d7..55569b66 100644 --- a/cmd/auth/auth_test.go +++ b/cmd/auth/auth_test.go @@ -19,7 +19,6 @@ import ( "testing" "github.com/slackapi/slack-cli/internal/hooks" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -32,7 +31,7 @@ type listMockObject struct { mock.Mock } -func (m *listMockObject) MockListFunction(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger) ([]types.SlackAuth, error) { +func (m *listMockObject) MockListFunction(ctx context.Context, clients *shared.ClientFactory) ([]types.SlackAuth, error) { args := m.Called() return args.Get(0).([]types.SlackAuth), args.Error(1) } diff --git a/cmd/auth/list.go b/cmd/auth/list.go index 2dbd906a..17f3e0b6 100644 --- a/cmd/auth/list.go +++ b/cmd/auth/list.go @@ -18,7 +18,6 @@ import ( "fmt" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/auth" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" @@ -52,34 +51,15 @@ func NewListCommand(clients *shared.ClientFactory) *cobra.Command { // runListCommand will execute the list command func runListCommand(cmd *cobra.Command, clients *shared.ClientFactory) error { ctx := cmd.Context() - log := newListLogger(cmd, clients.IO) - userAuthList, err := listFunc(ctx, clients, log) + userAuthList, err := listFunc(ctx, clients) if err != nil { return err } + printAuthList(cmd, clients.IO, userAuthList) printAuthListSuccess(cmd, clients.IO, userAuthList) return nil } -// newListLogger creates a logger instance to receive event notifications -func newListLogger(cmd *cobra.Command, IO iostreams.IOStreamer) *logger.Logger { - return logger.New( - // OnEvent - func(event *logger.LogEvent) { - switch event.Name { - case "on_auth_list": - userAuthList := []types.SlackAuth{} - if event.Data["userAuthList"] != nil { - userAuthList = event.Data["userAuthList"].([]types.SlackAuth) - } - printAuthList(cmd, IO, userAuthList) - default: - // Ignore the event - } - }, - ) -} - // printAuthList will display a list of all authorizations available and highlight the default. // The output will be a list formatted as: // diff --git a/cmd/auth/list_test.go b/cmd/auth/list_test.go index 40070c93..35581a21 100644 --- a/cmd/auth/list_test.go +++ b/cmd/auth/list_test.go @@ -18,7 +18,6 @@ import ( "context" "testing" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -32,7 +31,7 @@ type ListPkgMock struct { mock.Mock } -func (m *ListPkgMock) List(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger) ([]types.SlackAuth, error) { +func (m *ListPkgMock) List(ctx context.Context, clients *shared.ClientFactory) ([]types.SlackAuth, error) { m.Called() return []types.SlackAuth{}, nil } diff --git a/cmd/datastore/bulk_delete.go b/cmd/datastore/bulk_delete.go index cffc8b79..fbc21084 100644 --- a/cmd/datastore/bulk_delete.go +++ b/cmd/datastore/bulk_delete.go @@ -21,7 +21,6 @@ import ( "github.com/slackapi/slack-cli/internal/cmdutil" "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/goutils" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/datastore" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" @@ -88,12 +87,12 @@ func NewBulkDeleteCommand(clients *shared.ClientFactory) *cobra.Command { } // Perform the delete - log := newBulkDeleteLogger(clients, cmd) - event, err := BulkDelete(ctx, clients, log, query) + result, err := BulkDelete(ctx, clients, query) if err != nil { return err } - printDatastoreBulkDeleteSuccess(cmd, event) + _ = printBulkDeleteResult(clients, cmd, result) + printDatastoreBulkDeleteSuccess(cmd) return nil }, } @@ -118,26 +117,6 @@ func preRunBulkDeleteCommandFunc(ctx context.Context, clients *shared.ClientFact return cmdutil.IsSlackHostedProject(ctx, clients) } -func newBulkDeleteLogger(clients *shared.ClientFactory, cmd *cobra.Command) *logger.Logger { - return logger.New( - // OnEvent - func(event *logger.LogEvent) { - switch event.Name { - case "on_bulk_delete_result": - deleteResult := types.AppDatastoreBulkDeleteResult{} - if event.Data["bulkDeleteResult"] != nil { - deleteResult = event.Data["bulkDeleteResult"].(types.AppDatastoreBulkDeleteResult) - } - if cmd != nil { - _ = printBulkDeleteResult(clients, cmd, deleteResult) - } - default: - // Ignore the event - } - }, - ) -} - func printBulkDeleteResult(clients *shared.ClientFactory, cmd *cobra.Command, deleteResult types.AppDatastoreBulkDeleteResult) error { var datastore = deleteResult.Datastore cmd.Printf( @@ -166,7 +145,7 @@ func printBulkDeleteResult(clients *shared.ClientFactory, cmd *cobra.Command, de return nil } -func printDatastoreBulkDeleteSuccess(cmd *cobra.Command, event *logger.LogEvent) { +func printDatastoreBulkDeleteSuccess(cmd *cobra.Command) { commandText := style.Commandf("datastore query ", true) if cmd != nil { cmd.Printf( diff --git a/cmd/datastore/bulk_delete_test.go b/cmd/datastore/bulk_delete_test.go index cdaf0111..90ff9fa0 100644 --- a/cmd/datastore/bulk_delete_test.go +++ b/cmd/datastore/bulk_delete_test.go @@ -22,7 +22,6 @@ import ( "github.com/slackapi/slack-cli/internal/app" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -36,11 +35,9 @@ type BulkDeletePkgMock struct { mock.Mock } -func (m *BulkDeletePkgMock) BulkDelete(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, query types.AppDatastoreBulkDelete) (*logger.LogEvent, error) { - m.Called(ctx, clients, log, query) - log.Data["bulkDeleteResult"] = types.AppDatastoreBulkDeleteResult{} - log.Log("info", "on_bulk_delete_result") - return log.SuccessEvent(), nil +func (m *BulkDeletePkgMock) BulkDelete(ctx context.Context, clients *shared.ClientFactory, query types.AppDatastoreBulkDelete) (types.AppDatastoreBulkDeleteResult, error) { + m.Called(ctx, clients, query) + return types.AppDatastoreBulkDeleteResult{}, nil } func TestBulkDeleteCommandPreRun(t *testing.T) { @@ -185,7 +182,7 @@ func TestBulkDeleteCommand(t *testing.T) { // Create mocked command bulkDeleteMock := new(BulkDeletePkgMock) BulkDelete = bulkDeleteMock.BulkDelete - bulkDeleteMock.On("BulkDelete", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) + bulkDeleteMock.On("BulkDelete", mock.Anything, mock.Anything, mock.Anything).Return(types.AppDatastoreBulkDeleteResult{}, nil) cmd := NewBulkDeleteCommand(clients) // TODO: could maybe refactor this to the os/fs mocks level to more clearly communicate "fake being in an app directory" @@ -198,7 +195,7 @@ func TestBulkDeleteCommand(t *testing.T) { // Create mocked command err := cmd.ExecuteContext(ctx) if assert.NoError(t, err) { - bulkDeleteMock.AssertCalled(t, "BulkDelete", mock.Anything, mock.Anything, mock.Anything, tc.Query) + bulkDeleteMock.AssertCalled(t, "BulkDelete", mock.Anything, mock.Anything, tc.Query) } // Cleanup when done diff --git a/cmd/datastore/bulk_get.go b/cmd/datastore/bulk_get.go index 9a0fda6c..dd0b56e1 100644 --- a/cmd/datastore/bulk_get.go +++ b/cmd/datastore/bulk_get.go @@ -22,7 +22,6 @@ import ( "github.com/slackapi/slack-cli/internal/cmdutil" "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/goutils" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/datastore" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" @@ -90,12 +89,12 @@ func NewBulkGetCommand(clients *shared.ClientFactory) *cobra.Command { } // Perform the get - log := newBulkGetLogger(clients, cmd, query) - event, err := BulkGet(ctx, clients, log, query) + result, err := BulkGet(ctx, clients, query) if err != nil { return err } - printDatastoreBulkGetSuccess(cmd, event) + _ = printBulkGetResult(clients, cmd, query, result) + printDatastoreBulkGetSuccess(cmd) return nil }, } @@ -121,27 +120,6 @@ func preRunBulkGetCommandFunc(ctx context.Context, clients *shared.ClientFactory return cmdutil.IsSlackHostedProject(ctx, clients) } -func newBulkGetLogger(clients *shared.ClientFactory, cmd *cobra.Command, request types.AppDatastoreBulkGet) *logger.Logger { - return logger.New( - // OnEvent - func(event *logger.LogEvent) { - switch event.Name { - case "on_bulk_get_result": - getResult := types.AppDatastoreBulkGetResult{} - if event.Data["bulkGetResult"] != nil { - getResult = event.Data["bulkGetResult"].(types.AppDatastoreBulkGetResult) - } - if cmd != nil { - // TODO: this can raise an error on indentation failures, but not sure how to handle that using logger - _ = printBulkGetResult(clients, cmd, request, getResult) - } - default: - // Ignore the event - } - }, - ) -} - func printBulkGetResult(clients *shared.ClientFactory, cmd *cobra.Command, request types.AppDatastoreBulkGet, getResult types.AppDatastoreBulkGetResult) error { var datastore = getResult.Datastore var items = getResult.Items @@ -189,5 +167,5 @@ func printBulkGetResult(clients *shared.ClientFactory, cmd *cobra.Command, reque return nil } -func printDatastoreBulkGetSuccess(cmd *cobra.Command, event *logger.LogEvent) { +func printDatastoreBulkGetSuccess(cmd *cobra.Command) { } diff --git a/cmd/datastore/bulk_get_test.go b/cmd/datastore/bulk_get_test.go index 18cb16b5..e6883493 100644 --- a/cmd/datastore/bulk_get_test.go +++ b/cmd/datastore/bulk_get_test.go @@ -22,7 +22,6 @@ import ( "github.com/slackapi/slack-cli/internal/app" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -36,11 +35,9 @@ type BulkGetPkgMock struct { mock.Mock } -func (m *BulkGetPkgMock) BulkGet(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, query types.AppDatastoreBulkGet) (*logger.LogEvent, error) { - m.Called(ctx, clients, log, query) - log.Data["bulkGetResult"] = types.AppDatastoreBulkGetResult{} - log.Log("info", "on_bulk_get_result") - return log.SuccessEvent(), nil +func (m *BulkGetPkgMock) BulkGet(ctx context.Context, clients *shared.ClientFactory, query types.AppDatastoreBulkGet) (types.AppDatastoreBulkGetResult, error) { + m.Called(ctx, clients, query) + return types.AppDatastoreBulkGetResult{}, nil } func TestBulkGetCommandPreRun(t *testing.T) { @@ -185,7 +182,7 @@ func TestBulkGetCommand(t *testing.T) { // Prepare mocked command bulkGetMock := new(BulkGetPkgMock) BulkGet = bulkGetMock.BulkGet - bulkGetMock.On("BulkGet", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) + bulkGetMock.On("BulkGet", mock.Anything, mock.Anything, mock.Anything).Return(types.AppDatastoreBulkGetResult{}, nil) cmd := NewBulkGetCommand(clients) // TODO: could maybe refactor this to the os/fs mocks level to more clearly communicate "fake being in an app directory" @@ -198,7 +195,7 @@ func TestBulkGetCommand(t *testing.T) { // Perform test err := cmd.ExecuteContext(ctx) if assert.NoError(t, err) { - bulkGetMock.AssertCalled(t, "BulkGet", mock.Anything, mock.Anything, mock.Anything, tc.Query) + bulkGetMock.AssertCalled(t, "BulkGet", mock.Anything, mock.Anything, tc.Query) } // Cleanup when done diff --git a/cmd/datastore/bulk_put.go b/cmd/datastore/bulk_put.go index af984f9a..ff3fa93e 100644 --- a/cmd/datastore/bulk_put.go +++ b/cmd/datastore/bulk_put.go @@ -26,7 +26,6 @@ import ( "github.com/slackapi/slack-cli/internal/cmdutil" "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/goutils" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/datastore" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" @@ -117,12 +116,12 @@ func NewBulkPutCommand(clients *shared.ClientFactory) *cobra.Command { } // Perform the put - log := newBulkPutLogger(clients, cmd) - event, err := BulkPut(ctx, clients, log, query) + result, err := BulkPut(ctx, clients, query) if err != nil { return err } - printDatastoreBulkPutSuccess(cmd, event) + _ = printBulkPutResult(clients, cmd, result) + printDatastoreBulkPutSuccess(cmd) return nil }, } @@ -148,27 +147,6 @@ func preRunBulkPutCommandFunc(ctx context.Context, clients *shared.ClientFactory return cmdutil.IsSlackHostedProject(ctx, clients) } -func newBulkPutLogger(clients *shared.ClientFactory, cmd *cobra.Command) *logger.Logger { - return logger.New( - // OnEvent - func(event *logger.LogEvent) { - switch event.Name { - case "on_bulk_put_result": - bulkPutResult := types.AppDatastoreBulkPutResult{} - if event.Data["bulkPutResult"] != nil { - bulkPutResult = event.Data["bulkPutResult"].(types.AppDatastoreBulkPutResult) - } - if cmd != nil { - // TODO: this can raise an error on indentation failures, but not sure how to handle that using logger - _ = printBulkPutResult(clients, cmd, bulkPutResult) - } - default: - // Ignore the event - } - }, - ) -} - func printBulkPutResult(clients *shared.ClientFactory, cmd *cobra.Command, putResult types.AppDatastoreBulkPutResult) error { var datastore = putResult.Datastore cmd.Printf( @@ -196,7 +174,7 @@ func printBulkPutResult(clients *shared.ClientFactory, cmd *cobra.Command, putRe return nil } -func printDatastoreBulkPutSuccess(cmd *cobra.Command, event *logger.LogEvent) { +func printDatastoreBulkPutSuccess(cmd *cobra.Command) { commandText := style.Commandf("datastore query ", true) if cmd != nil { cmd.Printf( diff --git a/cmd/datastore/bulk_put_test.go b/cmd/datastore/bulk_put_test.go index 132af80b..e2e9e38f 100644 --- a/cmd/datastore/bulk_put_test.go +++ b/cmd/datastore/bulk_put_test.go @@ -25,7 +25,6 @@ import ( "github.com/slackapi/slack-cli/internal/app" "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/goutils" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -41,11 +40,9 @@ type BulkPutPkgMock struct { mock.Mock } -func (m *BulkPutPkgMock) BulkPut(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, query types.AppDatastoreBulkPut) (*logger.LogEvent, error) { - m.Called(ctx, clients, log, query) - log.Data["bulkPutResult"] = types.AppDatastoreBulkPutResult{} - log.Log("info", "on_bulk_put_result") - return log.SuccessEvent(), nil +func (m *BulkPutPkgMock) BulkPut(ctx context.Context, clients *shared.ClientFactory, query types.AppDatastoreBulkPut) (types.AppDatastoreBulkPutResult, error) { + m.Called(ctx, clients, query) + return types.AppDatastoreBulkPutResult{}, nil } func TestBulkPutCommandPreRun(t *testing.T) { @@ -202,7 +199,7 @@ func TestBulkPutCommand(t *testing.T) { // Prepare mocked command bulkPutMock := new(BulkPutPkgMock) BulkPut = bulkPutMock.BulkPut - bulkPutMock.On("BulkPut", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) + bulkPutMock.On("BulkPut", mock.Anything, mock.Anything, mock.Anything).Return(types.AppDatastoreBulkPutResult{}, nil) cmd := NewBulkPutCommand(clients) // TODO: could maybe refactor this to the os/fs mocks level to more clearly communicate "fake being in an app directory" @@ -215,7 +212,7 @@ func TestBulkPutCommand(t *testing.T) { // Perform test err := cmd.ExecuteContext(ctx) if assert.NoError(t, err) { - bulkPutMock.AssertCalled(t, "BulkPut", mock.Anything, mock.Anything, mock.Anything, tc.Query) + bulkPutMock.AssertCalled(t, "BulkPut", mock.Anything, mock.Anything, tc.Query) } // Cleanup when done diff --git a/cmd/datastore/delete.go b/cmd/datastore/delete.go index 7f023b1d..b0ebc41b 100644 --- a/cmd/datastore/delete.go +++ b/cmd/datastore/delete.go @@ -23,7 +23,6 @@ import ( "github.com/slackapi/slack-cli/internal/cmdutil" "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/datastore" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" @@ -98,12 +97,12 @@ func NewDeleteCommand(clients *shared.ClientFactory) *cobra.Command { } // Perform the delete - log := newDeleteLogger(clients, cmd) - event, err := Delete(ctx, clients, log, query) + result, err := Delete(ctx, clients, query) if err != nil { return err } - printDatastoreDeleteSuccess(cmd, event) + printDeleteResult(clients, cmd, result) + printDatastoreDeleteSuccess(cmd) return nil }, } @@ -128,26 +127,6 @@ func preRunDeleteCommandFunc(ctx context.Context, clients *shared.ClientFactory, return cmdutil.IsSlackHostedProject(ctx, clients) } -func newDeleteLogger(clients *shared.ClientFactory, cmd *cobra.Command) *logger.Logger { - return logger.New( - // OnEvent - func(event *logger.LogEvent) { - switch event.Name { - case "on_delete_result": - deleteResult := types.AppDatastoreDeleteResult{} - if event.Data["deleteResult"] != nil { - deleteResult = event.Data["deleteResult"].(types.AppDatastoreDeleteResult) - } - if cmd != nil { - printDeleteResult(clients, cmd, deleteResult) - } - default: - // Ignore the event - } - }, - ) -} - func printDeleteResult(clients *shared.ClientFactory, cmd *cobra.Command, deleteResult types.AppDatastoreDeleteResult) { var datastore = deleteResult.Datastore var id = deleteResult.ID @@ -162,7 +141,7 @@ func printDeleteResult(clients *shared.ClientFactory, cmd *cobra.Command, delete ) } -func printDatastoreDeleteSuccess(cmd *cobra.Command, event *logger.LogEvent) { +func printDatastoreDeleteSuccess(cmd *cobra.Command) { commandText := style.Commandf("datastore query ", true) if cmd != nil { cmd.Printf( diff --git a/cmd/datastore/delete_test.go b/cmd/datastore/delete_test.go index 44ef7d7a..4b2fdcca 100644 --- a/cmd/datastore/delete_test.go +++ b/cmd/datastore/delete_test.go @@ -23,7 +23,6 @@ import ( "github.com/slackapi/slack-cli/internal/app" "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -37,11 +36,9 @@ type DeletePkgMock struct { mock.Mock } -func (m *DeletePkgMock) Delete(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, query types.AppDatastoreDelete) (*logger.LogEvent, error) { - m.Called(ctx, clients, log, query) - log.Data["deleteResult"] = types.AppDatastoreDeleteResult{} - log.Log("info", "on_delete_result") - return log.SuccessEvent(), nil +func (m *DeletePkgMock) Delete(ctx context.Context, clients *shared.ClientFactory, query types.AppDatastoreDelete) (types.AppDatastoreDeleteResult, error) { + m.Called(ctx, clients, query) + return types.AppDatastoreDeleteResult{}, nil } func TestDeleteCommandPreRun(t *testing.T) { @@ -213,7 +210,7 @@ func TestDeleteCommand(t *testing.T) { // Create mocked command deleteMock := new(DeletePkgMock) Delete = deleteMock.Delete - deleteMock.On("Delete", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) + deleteMock.On("Delete", mock.Anything, mock.Anything, mock.Anything).Return(types.AppDatastoreDeleteResult{}, nil) cmd := NewDeleteCommand(clients) // TODO: could maybe refactor this to the os/fs mocks level to more clearly communicate "fake being in an app directory" @@ -229,7 +226,7 @@ func TestDeleteCommand(t *testing.T) { // Perform test err := cmd.ExecuteContext(ctx) if assert.NoError(t, err) { - deleteMock.AssertCalled(t, "Delete", mock.Anything, mock.Anything, mock.Anything, tc.Query) + deleteMock.AssertCalled(t, "Delete", mock.Anything, mock.Anything, tc.Query) } // Cleanup when done diff --git a/cmd/datastore/get.go b/cmd/datastore/get.go index 19343691..63f3cc29 100644 --- a/cmd/datastore/get.go +++ b/cmd/datastore/get.go @@ -24,7 +24,6 @@ import ( "github.com/slackapi/slack-cli/internal/cmdutil" "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/datastore" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" @@ -100,12 +99,12 @@ func NewGetCommand(clients *shared.ClientFactory) *cobra.Command { } // Perform the get - log := newGetLogger(clients, cmd) - event, err := Get(ctx, clients, log, query) + result, err := Get(ctx, clients, query) if err != nil { return err } - printDatastoreGetSuccess(cmd, event) + _ = printGetResult(clients, cmd, result) + printDatastoreGetSuccess(cmd) return nil }, } @@ -131,27 +130,6 @@ func preRunGetCommandFunc(ctx context.Context, clients *shared.ClientFactory, cm return cmdutil.IsSlackHostedProject(ctx, clients) } -func newGetLogger(clients *shared.ClientFactory, cmd *cobra.Command) *logger.Logger { - return logger.New( - // OnEvent - func(event *logger.LogEvent) { - switch event.Name { - case "on_get_result": - getResult := types.AppDatastoreGetResult{} - if event.Data["getResult"] != nil { - getResult = event.Data["getResult"].(types.AppDatastoreGetResult) - } - if cmd != nil { - // TODO: this can raise an error on indentation failures, but not sure how to handle that using logger - _ = printGetResult(clients, cmd, getResult) - } - default: - // Ignore the event - } - }, - ) -} - func printGetResult(clients *shared.ClientFactory, cmd *cobra.Command, getResult types.AppDatastoreGetResult) error { var datastore = getResult.Datastore var item = getResult.Item @@ -182,7 +160,7 @@ func printGetResult(clients *shared.ClientFactory, cmd *cobra.Command, getResult return nil } -func printDatastoreGetSuccess(cmd *cobra.Command, event *logger.LogEvent) { +func printDatastoreGetSuccess(cmd *cobra.Command) { if outputFlag == "text" { commandText := style.Commandf("datastore get ", true) if cmd != nil { diff --git a/cmd/datastore/get_test.go b/cmd/datastore/get_test.go index 38e6e599..5fb039ab 100644 --- a/cmd/datastore/get_test.go +++ b/cmd/datastore/get_test.go @@ -23,7 +23,6 @@ import ( "github.com/slackapi/slack-cli/internal/app" "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -37,11 +36,9 @@ type GetPkgMock struct { mock.Mock } -func (m *GetPkgMock) Get(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, query types.AppDatastoreGet) (*logger.LogEvent, error) { - m.Called(ctx, clients, log, query) - log.Data["getResult"] = types.AppDatastoreGetResult{} - log.Log("info", "on_get_result") - return log.SuccessEvent(), nil +func (m *GetPkgMock) Get(ctx context.Context, clients *shared.ClientFactory, query types.AppDatastoreGet) (types.AppDatastoreGetResult, error) { + m.Called(ctx, clients, query) + return types.AppDatastoreGetResult{}, nil } func TestGetCommandPreRun(t *testing.T) { @@ -212,7 +209,7 @@ func TestGetCommand(t *testing.T) { // Prepare mocked command getMock := new(GetPkgMock) Get = getMock.Get - getMock.On("Get", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) + getMock.On("Get", mock.Anything, mock.Anything, mock.Anything).Return(types.AppDatastoreGetResult{}, nil) cmd := NewGetCommand(clients) // TODO: could maybe refactor this to the os/fs mocks level to more clearly communicate "fake being in an app directory" @@ -228,7 +225,7 @@ func TestGetCommand(t *testing.T) { // Perform test err := cmd.ExecuteContext(ctx) if assert.NoError(t, err) { - getMock.AssertCalled(t, "Get", mock.Anything, mock.Anything, mock.Anything, tc.Query) + getMock.AssertCalled(t, "Get", mock.Anything, mock.Anything, tc.Query) } // Cleanup when done diff --git a/cmd/datastore/put.go b/cmd/datastore/put.go index 7128fae4..8f2ffa4f 100644 --- a/cmd/datastore/put.go +++ b/cmd/datastore/put.go @@ -24,7 +24,6 @@ import ( "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/goutils" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/datastore" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" @@ -99,12 +98,12 @@ func NewPutCommand(clients *shared.ClientFactory) *cobra.Command { } // Perform the put - log := newPutLogger(clients, cmd) - event, err := Put(ctx, clients, log, query) + result, err := Put(ctx, clients, query) if err != nil { return err } - printDatastorePutSuccess(cmd, event) + _ = printPutResult(clients, cmd, result) + printDatastorePutSuccess(cmd) return nil }, } @@ -129,27 +128,6 @@ func preRunPutCommandFunc(ctx context.Context, clients *shared.ClientFactory, cm return cmdutil.IsSlackHostedProject(ctx, clients) } -func newPutLogger(clients *shared.ClientFactory, cmd *cobra.Command) *logger.Logger { - return logger.New( - // OnEvent - func(event *logger.LogEvent) { - switch event.Name { - case "on_put_result": - putResult := types.AppDatastorePutResult{} - if event.Data["putResult"] != nil { - putResult = event.Data["putResult"].(types.AppDatastorePutResult) - } - if cmd != nil { - // TODO: this can raise an error on indentation failures, but not sure how to handle that using logger - _ = printPutResult(clients, cmd, putResult) - } - default: - // Ignore the event - } - }, - ) -} - func printPutResult(clients *shared.ClientFactory, cmd *cobra.Command, putResult types.AppDatastorePutResult) error { var datastore = putResult.Datastore var item = putResult.Item @@ -169,7 +147,7 @@ func printPutResult(clients *shared.ClientFactory, cmd *cobra.Command, putResult return nil } -func printDatastorePutSuccess(cmd *cobra.Command, event *logger.LogEvent) { +func printDatastorePutSuccess(cmd *cobra.Command) { commandText := style.Commandf("datastore query ", true) if cmd != nil { cmd.Printf( diff --git a/cmd/datastore/put_test.go b/cmd/datastore/put_test.go index 18d44830..e2a3e477 100644 --- a/cmd/datastore/put_test.go +++ b/cmd/datastore/put_test.go @@ -23,7 +23,6 @@ import ( "github.com/slackapi/slack-cli/internal/app" "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -37,11 +36,9 @@ type PutPkgMock struct { mock.Mock } -func (m *PutPkgMock) Put(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, query types.AppDatastorePut) (*logger.LogEvent, error) { - m.Called(ctx, clients, log, query) - log.Data["putResult"] = types.AppDatastorePutResult{} - log.Log("info", "on_put_result") - return log.SuccessEvent(), nil +func (m *PutPkgMock) Put(ctx context.Context, clients *shared.ClientFactory, query types.AppDatastorePut) (types.AppDatastorePutResult, error) { + m.Called(ctx, clients, query) + return types.AppDatastorePutResult{}, nil } func TestPutCommandPreRun(t *testing.T) { @@ -231,7 +228,7 @@ func TestPutCommand(t *testing.T) { // Prepare mocked command putMock := new(PutPkgMock) Put = putMock.Put - putMock.On("Put", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) + putMock.On("Put", mock.Anything, mock.Anything, mock.Anything).Return(types.AppDatastorePutResult{}, nil) cmd := NewPutCommand(clients) // TODO: could maybe refactor this to the os/fs mocks level to more clearly communicate "fake being in an app directory" @@ -247,7 +244,7 @@ func TestPutCommand(t *testing.T) { // Perform test err := cmd.ExecuteContext(ctx) if assert.NoError(t, err) { - putMock.AssertCalled(t, "Put", mock.Anything, mock.Anything, mock.Anything, tc.Query) + putMock.AssertCalled(t, "Put", mock.Anything, mock.Anything, tc.Query) } // Cleanup when done diff --git a/cmd/datastore/query.go b/cmd/datastore/query.go index 405040cd..17e885d8 100644 --- a/cmd/datastore/query.go +++ b/cmd/datastore/query.go @@ -27,7 +27,6 @@ import ( "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/goutils" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/datastore" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" @@ -126,12 +125,12 @@ func NewQueryCommand(clients *shared.ClientFactory) *cobra.Command { } // Perform the query - log := newQueryLogger(clients, cmd) - event, err := Query(ctx, clients, log, query) + result, err := Query(ctx, clients, query) if err != nil { return err } - printDatastoreQuerySuccess(cmd, event) + _ = printQueryResult(clients, cmd, result) + printDatastoreQuerySuccess(cmd) return nil }, } @@ -168,27 +167,6 @@ func preRunQueryCommandFunc(ctx context.Context, clients *shared.ClientFactory, return cmdutil.IsSlackHostedProject(ctx, clients) } -func newQueryLogger(clients *shared.ClientFactory, cmd *cobra.Command) *logger.Logger { - return logger.New( - // OnEvent - func(event *logger.LogEvent) { - switch event.Name { - case "on_query_result": - queryResult := types.AppDatastoreQueryResult{} - if event.Data["queryResult"] != nil { - queryResult = event.Data["queryResult"].(types.AppDatastoreQueryResult) - } - if cmd != nil { - // TODO: this can raise an error on indentation failures, but not sure how to handle that using logger - _ = printQueryResult(clients, cmd, queryResult) - } - default: - // Ignore the event - } - }, - ) -} - func printQueryResult(clients *shared.ClientFactory, cmd *cobra.Command, queryResult types.AppDatastoreQueryResult) error { var datastore = queryResult.Datastore switch outputFlag { @@ -223,7 +201,7 @@ func printQueryResult(clients *shared.ClientFactory, cmd *cobra.Command, queryRe return nil } -func printDatastoreQuerySuccess(cmd *cobra.Command, event *logger.LogEvent) { +func printDatastoreQuerySuccess(cmd *cobra.Command) { if outputFlag == "text" { commandText := style.Commandf("datastore put ", true) if cmd != nil { diff --git a/cmd/datastore/query_test.go b/cmd/datastore/query_test.go index 3ab83110..0f704327 100644 --- a/cmd/datastore/query_test.go +++ b/cmd/datastore/query_test.go @@ -24,7 +24,6 @@ import ( "github.com/slackapi/slack-cli/internal/app" "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -39,11 +38,9 @@ type QueryDatastorePkgMock struct { mock.Mock } -func (m *QueryDatastorePkgMock) Query(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, query types.AppDatastoreQuery) (*logger.LogEvent, error) { - m.Called(ctx, clients, log, query) - log.Data["queryResult"] = types.AppDatastoreQueryResult{} - log.Log("info", "on_query_result") - return log.SuccessEvent(), nil +func (m *QueryDatastorePkgMock) Query(ctx context.Context, clients *shared.ClientFactory, query types.AppDatastoreQuery) (types.AppDatastoreQueryResult, error) { + m.Called(ctx, clients, query) + return types.AppDatastoreQueryResult{}, nil } func TestQueryCommandPreRun(t *testing.T) { @@ -328,7 +325,7 @@ func TestQueryCommand(t *testing.T) { // Prepare mocked command queryMock := new(QueryDatastorePkgMock) Query = queryMock.Query - queryMock.On("Query", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) + queryMock.On("Query", mock.Anything, mock.Anything, mock.Anything).Return(types.AppDatastoreQueryResult{}, nil) cmd := NewQueryCommand(clients) // TODO: could maybe refactor this to the os/fs mocks level to more clearly communicate "fake being in an app directory" @@ -345,7 +342,7 @@ func TestQueryCommand(t *testing.T) { // Perform test err := cmd.ExecuteContext(ctx) if assert.NoError(t, err) { - queryMock.AssertCalled(t, "Query", mock.Anything, mock.Anything, mock.Anything, tc.Query) + queryMock.AssertCalled(t, "Query", mock.Anything, mock.Anything, tc.Query) } // Cleanup when done diff --git a/cmd/datastore/update.go b/cmd/datastore/update.go index a691fcd4..5bfba6b8 100644 --- a/cmd/datastore/update.go +++ b/cmd/datastore/update.go @@ -24,7 +24,6 @@ import ( "github.com/slackapi/slack-cli/internal/cmdutil" "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/datastore" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" @@ -99,12 +98,12 @@ func NewUpdateCommand(clients *shared.ClientFactory) *cobra.Command { } // Perform the update - log := newUpdateLogger(clients, cmd) - event, err := Update(ctx, clients, log, query) + result, err := Update(ctx, clients, query) if err != nil { return err } - printDatastoreUpdateSuccess(cmd, event) + _ = printUpdateResult(clients, cmd, result) + printDatastoreUpdateSuccess(cmd) return nil }, } @@ -129,27 +128,6 @@ func preRunUpdateCommandFunc(ctx context.Context, clients *shared.ClientFactory, return cmdutil.IsSlackHostedProject(ctx, clients) } -func newUpdateLogger(clients *shared.ClientFactory, cmd *cobra.Command) *logger.Logger { - return logger.New( - // OnEvent - func(event *logger.LogEvent) { - switch event.Name { - case "on_update_result": - updateResult := types.AppDatastoreUpdateResult{} - if event.Data["updateResult"] != nil { - updateResult = event.Data["updateResult"].(types.AppDatastoreUpdateResult) - } - if cmd != nil { - // TODO: this can raise an error on indentation failures, but not sure how to handle that using logger - _ = printUpdateResult(clients, cmd, updateResult) - } - default: - // Ignore the event - } - }, - ) -} - func printUpdateResult(clients *shared.ClientFactory, cmd *cobra.Command, updateResult types.AppDatastoreUpdateResult) error { var datastore = updateResult.Datastore var item = updateResult.Item @@ -169,7 +147,7 @@ func printUpdateResult(clients *shared.ClientFactory, cmd *cobra.Command, update return nil } -func printDatastoreUpdateSuccess(cmd *cobra.Command, event *logger.LogEvent) { +func printDatastoreUpdateSuccess(cmd *cobra.Command) { commandText := style.Commandf("datastore query ", true) if cmd != nil { cmd.Printf( diff --git a/cmd/datastore/update_test.go b/cmd/datastore/update_test.go index 67e0d729..41131012 100644 --- a/cmd/datastore/update_test.go +++ b/cmd/datastore/update_test.go @@ -23,7 +23,6 @@ import ( "github.com/slackapi/slack-cli/internal/app" "github.com/slackapi/slack-cli/internal/config" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -37,11 +36,9 @@ type UpdatePkgMock struct { mock.Mock } -func (m *UpdatePkgMock) Update(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, query types.AppDatastoreUpdate) (*logger.LogEvent, error) { - m.Called(ctx, clients, log, query) - log.Data["updateResult"] = types.AppDatastoreUpdateResult{} - log.Log("info", "on_update_result") - return log.SuccessEvent(), nil +func (m *UpdatePkgMock) Update(ctx context.Context, clients *shared.ClientFactory, query types.AppDatastoreUpdate) (types.AppDatastoreUpdateResult, error) { + m.Called(ctx, clients, query) + return types.AppDatastoreUpdateResult{}, nil } func TestUpdateCommandPreRun(t *testing.T) { @@ -329,7 +326,7 @@ func TestUpdateCommand(t *testing.T) { // Prepare mocked command updateMock := new(UpdatePkgMock) Update = updateMock.Update - updateMock.On("Update", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) + updateMock.On("Update", mock.Anything, mock.Anything, mock.Anything).Return(types.AppDatastoreUpdateResult{}, nil) cmd := NewUpdateCommand(clients) // TODO: could maybe refactor this to the os/fs mocks level to more clearly communicate "fake being in an app directory" @@ -345,7 +342,7 @@ func TestUpdateCommand(t *testing.T) { // Perform test err := cmd.ExecuteContext(ctx) if assert.NoError(t, err) { - updateMock.AssertCalled(t, "Update", mock.Anything, mock.Anything, mock.Anything, tc.Query) + updateMock.AssertCalled(t, "Update", mock.Anything, mock.Anything, tc.Query) } // Cleanup when done diff --git a/cmd/manifest/validate.go b/cmd/manifest/validate.go index c98ee063..f72d0ec2 100644 --- a/cmd/manifest/validate.go +++ b/cmd/manifest/validate.go @@ -23,7 +23,6 @@ import ( "github.com/slackapi/slack-cli/internal/app" "github.com/slackapi/slack-cli/internal/cmdutil" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/manifest" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" @@ -78,8 +77,7 @@ func NewValidateCommand(clients *shared.ClientFactory) *cobra.Command { clients.Config.ManifestEnv = app.SetManifestEnvTeamVars(clients.Config.ManifestEnv, selection.App.TeamDomain, selection.App.IsDev) - logger := newValidateLogger(clients, cmd) - log, warn, err := manifestValidateFunc(ctx, clients, logger, selection.App, token) + isValid, warn, err := manifestValidateFunc(ctx, clients, selection.App, token) if err != nil { return err } @@ -87,22 +85,19 @@ func NewValidateCommand(clients *shared.ClientFactory) *cobra.Command { clients.IO.PrintWarning(ctx, "%s", warn.Warning(clients.Config.DebugEnabled, "The following warnings were raised during manifest validation")) return nil } - if log != nil { - var isValid = log.DataToBool("isValid") - if isValid { - cmd.Printf( - "\n%s: %s\n", - style.Bold("App Manifest Validation Result"), - style.Styler().Green("Valid"), - ) - clients.IO.PrintTrace(ctx, slacktrace.ManifestValidateSuccess) - } else { - cmd.Printf( - "\n%s: %s\n", - style.Bold("App Manifest Validation Result"), - style.Styler().Red("InValid"), - ) - } + if isValid { + cmd.Printf( + "\n%s: %s\n", + style.Bold("App Manifest Validation Result"), + style.Styler().Green("Valid"), + ) + clients.IO.PrintTrace(ctx, slacktrace.ManifestValidateSuccess) + } else { + cmd.Printf( + "\n%s: %s\n", + style.Bold("App Manifest Validation Result"), + style.Styler().Red("InValid"), + ) } return nil }, @@ -111,19 +106,6 @@ func NewValidateCommand(clients *shared.ClientFactory) *cobra.Command { return cmd } -// newValidateLogger creates a logger instance to receive event notifications -func newValidateLogger(clients *shared.ClientFactory, cmd *cobra.Command) *logger.Logger { - return logger.New( - // OnEvent - func(event *logger.LogEvent) { - switch event.Name { - default: - // Ignore the event - } - }, - ) -} - // gatherAuthenticationToken returns some user token and configures authentication // internals for API use func gatherAuthenticationToken(ctx context.Context, clients *shared.ClientFactory) (auth types.SlackAuth, err error) { diff --git a/cmd/manifest/validate_test.go b/cmd/manifest/validate_test.go index 912bdd1e..3cb33f6d 100644 --- a/cmd/manifest/validate_test.go +++ b/cmd/manifest/validate_test.go @@ -21,7 +21,6 @@ import ( "github.com/slackapi/slack-cli/internal/hooks" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" @@ -37,15 +36,16 @@ type ManifestValidatePkgMock struct { mock.Mock } -func (m *ManifestValidatePkgMock) ManifestValidate(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, app types.App, token string) (*logger.LogEvent, slackerror.Warnings, error) { - m.Called(ctx, clients, log, app, token) - return log.SuccessEvent(), nil, nil +func (m *ManifestValidatePkgMock) ManifestValidate(ctx context.Context, clients *shared.ClientFactory, app types.App, token string) (bool, slackerror.Warnings, error) { + m.Called(ctx, clients, app, token) + return true, nil, nil } func TestManifestValidateCommand(t *testing.T) { // Create mocks ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() + clientsMock.AddDefaultMocks() // Create clients that is mocked for testing clients := shared.NewClientFactory(clientsMock.MockClientFactory(), func(clients *shared.ClientFactory) { @@ -63,13 +63,13 @@ func TestManifestValidateCommand(t *testing.T) { manifestValidatePkgMock := new(ManifestValidatePkgMock) manifestValidateFunc = manifestValidatePkgMock.ManifestValidate - manifestValidatePkgMock.On("ManifestValidate", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) + manifestValidatePkgMock.On("ManifestValidate", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) err := cmd.ExecuteContext(ctx) if err != nil { assert.Fail(t, "cmd.Execute had unexpected error") } - manifestValidatePkgMock.AssertCalled(t, "ManifestValidate", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything) + manifestValidatePkgMock.AssertCalled(t, "ManifestValidate", mock.Anything, mock.Anything, mock.Anything, mock.Anything) } func TestManifestValidateCommand_HandleMissingAppInstallError_ZeroUserAuth(t *testing.T) { @@ -138,7 +138,7 @@ func TestManifestValidateCommand_HandleMissingAppInstallError_OneUserAuth(t *tes // Mock the manifest validate package manifestValidatePkgMock := new(ManifestValidatePkgMock) manifestValidateFunc = manifestValidatePkgMock.ManifestValidate - manifestValidatePkgMock.On("ManifestValidate", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) + manifestValidatePkgMock.On("ManifestValidate", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) // Should execute without error err := cmd.ExecuteContext(ctx) @@ -200,7 +200,7 @@ func TestManifestValidateCommand_HandleMissingAppInstallError_MoreThanOneUserAut // Mock the manifest validate package manifestValidatePkgMock := new(ManifestValidatePkgMock) manifestValidateFunc = manifestValidatePkgMock.ManifestValidate - manifestValidatePkgMock.On("ManifestValidate", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) + manifestValidatePkgMock.On("ManifestValidate", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) // Should execute without error err := cmd.ExecuteContext(ctx) diff --git a/cmd/platform/activity.go b/cmd/platform/activity.go index 72aa908a..52b7334a 100644 --- a/cmd/platform/activity.go +++ b/cmd/platform/activity.go @@ -19,7 +19,6 @@ import ( "github.com/slackapi/slack-cli/internal/cmdutil" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/pkg/platform" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" @@ -130,23 +129,9 @@ func runActivityCommand(clients *shared.ClientFactory, cmd *cobra.Command, args TraceID: traceID, } - log := newActivityLogger(cmd) - if err := activityFunc(ctx, clients, log, activityArgs); err != nil { + if err := activityFunc(ctx, clients, activityArgs); err != nil { return err } return nil } - -// newActivityLogger creates a logger instance to receive event notifications -func newActivityLogger(cmd *cobra.Command) *logger.Logger { - return logger.New( - // OnEvent - func(event *logger.LogEvent) { - switch event.Name { - default: - // Ignore the event - } - }, - ) -} diff --git a/cmd/platform/activity_test.go b/cmd/platform/activity_test.go index 59e1932c..ab699acd 100644 --- a/cmd/platform/activity_test.go +++ b/cmd/platform/activity_test.go @@ -19,7 +19,6 @@ import ( "testing" "github.com/slackapi/slack-cli/internal/hooks" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/prompts" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" @@ -38,7 +37,6 @@ type ActivityPkgMock struct { func (m *ActivityPkgMock) Activity( ctx context.Context, clients *shared.ClientFactory, - log *logger.Logger, args types.ActivityArgs, ) error { m.Called() diff --git a/internal/pkg/apps/delete.go b/internal/pkg/apps/delete.go index dabd9fa2..e3485b64 100644 --- a/internal/pkg/apps/delete.go +++ b/internal/pkg/apps/delete.go @@ -20,14 +20,13 @@ import ( "github.com/opentracing/opentracing-go" "github.com/slackapi/slack-cli/internal/api" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackerror" ) // Delete will delete the app for this teamDomain both remotely (API) and locally (project) -func Delete(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, teamDomain string, app types.App, auth types.SlackAuth) (types.App, error) { +func Delete(ctx context.Context, clients *shared.ClientFactory, teamDomain string, app types.App, auth types.SlackAuth) (types.App, string, error) { span, _ := opentracing.StartSpanFromContext(ctx, "pkg.apps.delete") defer span.Finish() @@ -37,36 +36,29 @@ func Delete(ctx context.Context, clients *shared.ClientFactory, log *logger.Logg // Get Team Name ctx, authSession, err := getAuthSession(ctx, clients, auth) if err != nil { - return types.App{}, slackerror.Wrap(err, slackerror.ErrAppRemove) + return types.App{}, "", slackerror.Wrap(err, slackerror.ErrAppRemove) } - // Is this needed anymore? + var teamName string if authSession.TeamName != nil { - log.Data["teamName"] = *authSession.TeamName + teamName = *authSession.TeamName } - // Emit starting to remove app (requires teamName) - log.Info("on_apps_delete_init") - if app.AppID == "" { err = slackerror.New(slackerror.ErrAppNotFound).WithMessage("App not found for team '%s'", teamDomain) - return types.App{}, slackerror.Wrap(err, slackerror.ErrAppRemove) + return types.App{}, "", slackerror.Wrap(err, slackerror.ErrAppRemove) } - log.Info("on_apps_delete_app_init") - // Delete app remotely via Slack API err = clients.API().DeleteApp(ctx, config.GetContextToken(ctx), app.AppID) if err != nil { - return app, err + return app, teamName, err } - log.Info("on_apps_delete_app_success") // Remove the saved app from project files - log.Info("on_apps_remove_project") removedApp, err := clients.AppClient().Remove(ctx, app) if err != nil { - return types.App{}, err + return types.App{}, teamName, err } if removedApp.IsNew() { clients.IO.PrintDebug( @@ -76,7 +68,7 @@ func Delete(ctx context.Context, clients *shared.ClientFactory, log *logger.Logg app.TeamID, ) } - return app, nil + return app, teamName, nil } // getAuthSession return the api.AuthSession for the current auth diff --git a/internal/pkg/apps/delete_test.go b/internal/pkg/apps/delete_test.go index ca16125b..117068c9 100644 --- a/internal/pkg/apps/delete_test.go +++ b/internal/pkg/apps/delete_test.go @@ -18,7 +18,6 @@ import ( "testing" "github.com/slackapi/slack-cli/internal/api" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -107,7 +106,7 @@ func TestAppsDelete(t *testing.T) { } } - app, err := Delete(ctx, clients, logger.New(nil), tc.app.TeamDomain, tc.app, tc.auth) + app, _, err := Delete(ctx, clients, tc.app.TeamDomain, tc.app, tc.auth) require.NoError(t, err) assert.Equal(t, tc.app, app) clientsMock.API.AssertCalled( diff --git a/internal/pkg/apps/uninstall.go b/internal/pkg/apps/uninstall.go index e10c0b93..aeed7c2d 100644 --- a/internal/pkg/apps/uninstall.go +++ b/internal/pkg/apps/uninstall.go @@ -19,7 +19,6 @@ import ( "github.com/opentracing/opentracing-go" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackerror" @@ -27,7 +26,7 @@ import ( // Uninstall will uninstall the app that belongs to the teamDomain from the backend. // It will not modify the local project files (apps.json). -func Uninstall(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, teamDomain string, app types.App, auth types.SlackAuth) (types.App, error) { +func Uninstall(ctx context.Context, clients *shared.ClientFactory, teamDomain string, app types.App, auth types.SlackAuth) (types.App, string, error) { span, _ := opentracing.StartSpanFromContext(ctx, "pkg.apps.uninstall") defer span.Finish() @@ -37,32 +36,27 @@ func Uninstall(ctx context.Context, clients *shared.ClientFactory, log *logger.L // Get Team Name ctx, authSession, err := getAuthSession(ctx, clients, auth) if err != nil { - return types.App{}, slackerror.Wrap(err, slackerror.ErrAppRemove) + return types.App{}, "", slackerror.Wrap(err, slackerror.ErrAppRemove) } + + var teamName string if authSession.TeamName != nil { - log.Data["teamName"] = *authSession.TeamName + teamName = *authSession.TeamName } - // Emit starting to remove app (requires teamName) - log.Info("on_apps_uninstall_init") - if app.AppID == "" { err = slackerror.New("app for team " + teamDomain + " not found") - return types.App{}, slackerror.Wrap(err, slackerror.ErrAppRemove) + return types.App{}, "", slackerror.Wrap(err, slackerror.ErrAppRemove) } // Get token token := config.GetContextToken(ctx) // Uninstall the app - log.Info("on_apps_uninstall_app_init") err = clients.API().UninstallApp(ctx, token, app.AppID, app.TeamID) if err != nil { - return app, err + return app, teamName, err } - log.Info("on_apps_uninstall_app_success") - - // Not modifying apps.json / apps.dev.json - return app, nil + return app, teamName, nil } diff --git a/internal/pkg/auth/list.go b/internal/pkg/auth/list.go index e80e1419..4002bddd 100644 --- a/internal/pkg/auth/list.go +++ b/internal/pkg/auth/list.go @@ -19,14 +19,13 @@ import ( "sort" "github.com/opentracing/opentracing-go" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackerror" ) // List returns a list of the authenticated Slack accounts. -func List(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger) ([]types.SlackAuth, error) { +func List(ctx context.Context, clients *shared.ClientFactory) ([]types.SlackAuth, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "pkg.auth.list") defer span.Finish() @@ -40,10 +39,5 @@ func List(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger return auths[i].TeamDomain < auths[j].TeamDomain }) - // Notify listeners - log.Data = logger.LogData{} - log.Data["userAuthList"] = auths - log.Log("info", "on_auth_list") - return auths, nil } diff --git a/internal/pkg/auth/list_test.go b/internal/pkg/auth/list_test.go index f82a3daa..edeac6ad 100644 --- a/internal/pkg/auth/list_test.go +++ b/internal/pkg/auth/list_test.go @@ -20,7 +20,6 @@ import ( "time" "github.com/slackapi/slack-cli/internal/hooks" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -52,7 +51,7 @@ func TestAuthList(t *testing.T) { clientsMock.Auth.On("Auths", mock.Anything).Return(mockAuths, errors.New("There was an error")) t.Run("Handles error getting auth slice", func(t *testing.T) { - _, err := List(ctx, clients, &logger.Logger{}) + _, err := List(ctx, clients) require.Error(t, err) }) } @@ -94,7 +93,7 @@ func TestAuthList_SortedAuths(t *testing.T) { clientsMock.Auth.On("Auths", mock.Anything).Return(mockAuths, nil) - _, err := List(ctx, clients, &logger.Logger{}) + _, err := List(ctx, clients) require.NoError(t, err) // require.Equal(t, expectSortedAuths[0], authB, "should sort alphabetically as first elem") diff --git a/internal/pkg/datastore/bulk_delete.go b/internal/pkg/datastore/bulk_delete.go index 8015bc87..c6236b0f 100644 --- a/internal/pkg/datastore/bulk_delete.go +++ b/internal/pkg/datastore/bulk_delete.go @@ -19,12 +19,11 @@ import ( "github.com/opentracing/opentracing-go" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" ) -func BulkDelete(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, request types.AppDatastoreBulkDelete) (*logger.LogEvent, error) { +func BulkDelete(ctx context.Context, clients *shared.ClientFactory, request types.AppDatastoreBulkDelete) (types.AppDatastoreBulkDeleteResult, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "pkg.datastore.bulkDelete") defer span.Finish() @@ -33,12 +32,8 @@ func BulkDelete(ctx context.Context, clients *shared.ClientFactory, log *logger. deleteResult, err := clients.API().AppsDatastoreBulkDelete(ctx, token, request) if err != nil { - return nil, err + return types.AppDatastoreBulkDeleteResult{}, err } - // Notify listeners - log.Data["bulkDeleteResult"] = deleteResult - log.Log("info", "on_bulk_delete_result") - - return log.SuccessEvent(), nil + return deleteResult, nil } diff --git a/internal/pkg/datastore/bulk_delete_test.go b/internal/pkg/datastore/bulk_delete_test.go index 1936bd7e..815956ba 100644 --- a/internal/pkg/datastore/bulk_delete_test.go +++ b/internal/pkg/datastore/bulk_delete_test.go @@ -17,7 +17,6 @@ package datastore import ( "testing" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -59,16 +58,13 @@ func TestDatastoreBulkDeleteArguments(t *testing.T) { t.Run(name, func(t *testing.T) { ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() - log := logger.Logger{ - Data: map[string]interface{}{}, - } clientsMock.API.On("AppsDatastoreBulkDelete", mock.Anything, mock.Anything, tc.Query). Return(tc.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := BulkDelete(ctx, client, &log, tc.Query) + result, err := BulkDelete(ctx, client, tc.Query) if assert.NoError(t, err) { - assert.Equal(t, tc.Results, event.Data["bulkDeleteResult"]) + assert.Equal(t, tc.Results, result) } }) } diff --git a/internal/pkg/datastore/bulk_get.go b/internal/pkg/datastore/bulk_get.go index 2aeff35c..7058d983 100644 --- a/internal/pkg/datastore/bulk_get.go +++ b/internal/pkg/datastore/bulk_get.go @@ -19,12 +19,11 @@ import ( "github.com/opentracing/opentracing-go" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" ) -func BulkGet(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, request types.AppDatastoreBulkGet) (*logger.LogEvent, error) { +func BulkGet(ctx context.Context, clients *shared.ClientFactory, request types.AppDatastoreBulkGet) (types.AppDatastoreBulkGetResult, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "pkg.datastore.bulkGet") defer span.Finish() @@ -33,12 +32,8 @@ func BulkGet(ctx context.Context, clients *shared.ClientFactory, log *logger.Log getResult, err := clients.API().AppsDatastoreBulkGet(ctx, token, request) if err != nil { - return nil, err + return types.AppDatastoreBulkGetResult{}, err } - // Notify listeners - log.Data["bulkGetResult"] = getResult - log.Log("info", "on_bulk_get_result") - - return log.SuccessEvent(), nil + return getResult, nil } diff --git a/internal/pkg/datastore/bulk_get_test.go b/internal/pkg/datastore/bulk_get_test.go index 3b1fa4dc..486cba44 100644 --- a/internal/pkg/datastore/bulk_get_test.go +++ b/internal/pkg/datastore/bulk_get_test.go @@ -17,7 +17,6 @@ package datastore import ( "testing" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -60,16 +59,13 @@ func TestDatastoreBulkGetArguments(t *testing.T) { t.Run(name, func(t *testing.T) { ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() - log := logger.Logger{ - Data: map[string]interface{}{}, - } clientsMock.API.On("AppsDatastoreBulkGet", mock.Anything, mock.Anything, tc.Query). Return(tc.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := BulkGet(ctx, client, &log, tc.Query) + result, err := BulkGet(ctx, client, tc.Query) if assert.NoError(t, err) { - assert.Equal(t, tc.Results, event.Data["bulkGetResult"]) + assert.Equal(t, tc.Results, result) } }) } diff --git a/internal/pkg/datastore/bulk_put.go b/internal/pkg/datastore/bulk_put.go index 5e23ed58..c145125e 100644 --- a/internal/pkg/datastore/bulk_put.go +++ b/internal/pkg/datastore/bulk_put.go @@ -19,12 +19,11 @@ import ( "github.com/opentracing/opentracing-go" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" ) -func BulkPut(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, request types.AppDatastoreBulkPut) (*logger.LogEvent, error) { +func BulkPut(ctx context.Context, clients *shared.ClientFactory, request types.AppDatastoreBulkPut) (types.AppDatastoreBulkPutResult, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "pkg.datastore.bulkPut") defer span.Finish() @@ -33,12 +32,8 @@ func BulkPut(ctx context.Context, clients *shared.ClientFactory, log *logger.Log bulkPutResult, err := clients.API().AppsDatastoreBulkPut(ctx, token, request) if err != nil { - return nil, err + return types.AppDatastoreBulkPutResult{}, err } - // Notify listeners - log.Data["bulkPutResult"] = bulkPutResult - log.Log("info", "on_bulk_put_result") - - return log.SuccessEvent(), nil + return bulkPutResult, nil } diff --git a/internal/pkg/datastore/bulk_put_test.go b/internal/pkg/datastore/bulk_put_test.go index ac9c6211..9253eec5 100644 --- a/internal/pkg/datastore/bulk_put_test.go +++ b/internal/pkg/datastore/bulk_put_test.go @@ -17,7 +17,6 @@ package datastore import ( "testing" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -67,16 +66,13 @@ func TestDatastoreBulkPutArguments(t *testing.T) { t.Run(name, func(t *testing.T) { ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() - log := logger.Logger{ - Data: map[string]interface{}{}, - } clientsMock.API.On("AppsDatastoreBulkPut", mock.Anything, mock.Anything, tc.Query). Return(tc.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := BulkPut(ctx, client, &log, tc.Query) + result, err := BulkPut(ctx, client, tc.Query) if assert.NoError(t, err) { - assert.Equal(t, tc.Results, event.Data["bulkPutResult"]) + assert.Equal(t, tc.Results, result) } }) } diff --git a/internal/pkg/datastore/delete.go b/internal/pkg/datastore/delete.go index e41fb4f0..47a0ccc6 100644 --- a/internal/pkg/datastore/delete.go +++ b/internal/pkg/datastore/delete.go @@ -19,12 +19,11 @@ import ( "github.com/opentracing/opentracing-go" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" ) -func Delete(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, request types.AppDatastoreDelete) (*logger.LogEvent, error) { +func Delete(ctx context.Context, clients *shared.ClientFactory, request types.AppDatastoreDelete) (types.AppDatastoreDeleteResult, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "pkg.datastore.delete") defer span.Finish() @@ -33,12 +32,8 @@ func Delete(ctx context.Context, clients *shared.ClientFactory, log *logger.Logg deleteResult, err := clients.API().AppsDatastoreDelete(ctx, token, request) if err != nil { - return nil, err + return types.AppDatastoreDeleteResult{}, err } - // Notify listeners - log.Data["deleteResult"] = deleteResult - log.Log("info", "on_delete_result") - - return log.SuccessEvent(), nil + return deleteResult, nil } diff --git a/internal/pkg/datastore/delete_test.go b/internal/pkg/datastore/delete_test.go index 72548199..d7885c8b 100644 --- a/internal/pkg/datastore/delete_test.go +++ b/internal/pkg/datastore/delete_test.go @@ -17,7 +17,6 @@ package datastore import ( "testing" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -48,16 +47,13 @@ func TestDatastoreDeleteArguments(t *testing.T) { t.Run(name, func(t *testing.T) { ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() - log := logger.Logger{ - Data: map[string]interface{}{}, - } clientsMock.API.On("AppsDatastoreDelete", mock.Anything, mock.Anything, tc.Query). Return(tc.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := Delete(ctx, client, &log, tc.Query) + result, err := Delete(ctx, client, tc.Query) if assert.NoError(t, err) { - assert.Equal(t, tc.Results, event.Data["deleteResult"]) + assert.Equal(t, tc.Results, result) } }) } diff --git a/internal/pkg/datastore/get.go b/internal/pkg/datastore/get.go index 97781ea8..ba7f6e68 100644 --- a/internal/pkg/datastore/get.go +++ b/internal/pkg/datastore/get.go @@ -19,12 +19,11 @@ import ( "github.com/opentracing/opentracing-go" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" ) -func Get(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, request types.AppDatastoreGet) (*logger.LogEvent, error) { +func Get(ctx context.Context, clients *shared.ClientFactory, request types.AppDatastoreGet) (types.AppDatastoreGetResult, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "pkg.datastore.get") defer span.Finish() @@ -33,12 +32,8 @@ func Get(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, getResult, err := clients.API().AppsDatastoreGet(ctx, token, request) if err != nil { - return nil, err + return types.AppDatastoreGetResult{}, err } - // Notify listeners - log.Data["getResult"] = getResult - log.Log("info", "on_get_result") - - return log.SuccessEvent(), nil + return getResult, nil } diff --git a/internal/pkg/datastore/get_test.go b/internal/pkg/datastore/get_test.go index d5134de4..bfaa3f40 100644 --- a/internal/pkg/datastore/get_test.go +++ b/internal/pkg/datastore/get_test.go @@ -17,7 +17,6 @@ package datastore import ( "testing" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -48,16 +47,13 @@ func TestDatastoreGetArguments(t *testing.T) { t.Run(name, func(t *testing.T) { ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() - log := logger.Logger{ - Data: map[string]interface{}{}, - } clientsMock.API.On("AppsDatastoreGet", mock.Anything, mock.Anything, tc.Query). Return(tc.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := Get(ctx, client, &log, tc.Query) + result, err := Get(ctx, client, tc.Query) if assert.NoError(t, err) { - assert.Equal(t, tc.Results, event.Data["getResult"]) + assert.Equal(t, tc.Results, result) } }) } diff --git a/internal/pkg/datastore/put.go b/internal/pkg/datastore/put.go index 12ef1e42..8da9b32e 100644 --- a/internal/pkg/datastore/put.go +++ b/internal/pkg/datastore/put.go @@ -19,12 +19,11 @@ import ( "github.com/opentracing/opentracing-go" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" ) -func Put(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, request types.AppDatastorePut) (*logger.LogEvent, error) { +func Put(ctx context.Context, clients *shared.ClientFactory, request types.AppDatastorePut) (types.AppDatastorePutResult, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "pkg.datastore.put") defer span.Finish() @@ -33,12 +32,8 @@ func Put(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, putResult, err := clients.API().AppsDatastorePut(ctx, token, request) if err != nil { - return nil, err + return types.AppDatastorePutResult{}, err } - // Notify listeners - log.Data["putResult"] = putResult - log.Log("info", "on_put_result") - - return log.SuccessEvent(), nil + return putResult, nil } diff --git a/internal/pkg/datastore/put_test.go b/internal/pkg/datastore/put_test.go index 6f34bf2b..d6625fcf 100644 --- a/internal/pkg/datastore/put_test.go +++ b/internal/pkg/datastore/put_test.go @@ -17,7 +17,6 @@ package datastore import ( "testing" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -48,16 +47,13 @@ func TestDatastorePutArguments(t *testing.T) { t.Run(name, func(t *testing.T) { ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() - log := logger.Logger{ - Data: map[string]interface{}{}, - } clientsMock.API.On("AppsDatastorePut", mock.Anything, mock.Anything, tc.Query). Return(tc.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := Put(ctx, client, &log, tc.Query) + result, err := Put(ctx, client, tc.Query) if assert.NoError(t, err) { - assert.Equal(t, tc.Results, event.Data["putResult"]) + assert.Equal(t, tc.Results, result) } }) } diff --git a/internal/pkg/datastore/query.go b/internal/pkg/datastore/query.go index 88fa1a4f..22623a75 100644 --- a/internal/pkg/datastore/query.go +++ b/internal/pkg/datastore/query.go @@ -19,12 +19,11 @@ import ( "github.com/opentracing/opentracing-go" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" ) -func Query(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, request types.AppDatastoreQuery) (*logger.LogEvent, error) { +func Query(ctx context.Context, clients *shared.ClientFactory, request types.AppDatastoreQuery) (types.AppDatastoreQueryResult, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "pkg.datastore.query") defer span.Finish() @@ -33,11 +32,8 @@ func Query(ctx context.Context, clients *shared.ClientFactory, log *logger.Logge queryResult, err := clients.API().AppsDatastoreQuery(ctx, token, request) if err != nil { - return nil, err + return types.AppDatastoreQueryResult{}, err } - // Notify listeners - log.Data["queryResult"] = queryResult - log.Log("info", "on_query_result") - return log.SuccessEvent(), nil + return queryResult, nil } diff --git a/internal/pkg/datastore/query_test.go b/internal/pkg/datastore/query_test.go index 02fba8a6..c6106cac 100644 --- a/internal/pkg/datastore/query_test.go +++ b/internal/pkg/datastore/query_test.go @@ -17,7 +17,6 @@ package datastore import ( "testing" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -106,16 +105,13 @@ func TestDatastoreQueryArguments(t *testing.T) { t.Run(name, func(t *testing.T) { ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() - log := logger.Logger{ - Data: map[string]interface{}{}, - } clientsMock.API.On("AppsDatastoreQuery", mock.Anything, mock.Anything, tc.Query). Return(tc.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := Query(ctx, client, &log, tc.Query) + result, err := Query(ctx, client, tc.Query) if assert.NoError(t, err) { - assert.Equal(t, tc.Results, event.Data["queryResult"]) + assert.Equal(t, tc.Results, result) } }) } diff --git a/internal/pkg/datastore/update.go b/internal/pkg/datastore/update.go index 6360bfc1..3298c6bd 100644 --- a/internal/pkg/datastore/update.go +++ b/internal/pkg/datastore/update.go @@ -19,12 +19,11 @@ import ( "github.com/opentracing/opentracing-go" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" ) -func Update(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, request types.AppDatastoreUpdate) (*logger.LogEvent, error) { +func Update(ctx context.Context, clients *shared.ClientFactory, request types.AppDatastoreUpdate) (types.AppDatastoreUpdateResult, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "pkg.datastore.update") defer span.Finish() @@ -33,12 +32,8 @@ func Update(ctx context.Context, clients *shared.ClientFactory, log *logger.Logg updateResult, err := clients.API().AppsDatastoreUpdate(ctx, token, request) if err != nil { - return nil, err + return types.AppDatastoreUpdateResult{}, err } - // Notify listeners - log.Data["updateResult"] = updateResult - log.Log("info", "on_update_result") - - return log.SuccessEvent(), nil + return updateResult, nil } diff --git a/internal/pkg/datastore/update_test.go b/internal/pkg/datastore/update_test.go index a5015c19..18a1879b 100644 --- a/internal/pkg/datastore/update_test.go +++ b/internal/pkg/datastore/update_test.go @@ -17,7 +17,6 @@ package datastore import ( "testing" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -48,16 +47,13 @@ func TestDatastoreUpdateArguments(t *testing.T) { t.Run(name, func(t *testing.T) { ctx := slackcontext.MockContext(t.Context()) clientsMock := shared.NewClientsMock() - log := logger.Logger{ - Data: map[string]interface{}{}, - } clientsMock.API.On("AppsDatastoreUpdate", mock.Anything, mock.Anything, tc.Query). Return(tc.Results, nil) client := shared.NewClientFactory(clientsMock.MockClientFactory()) - event, err := Update(ctx, client, &log, tc.Query) + result, err := Update(ctx, client, tc.Query) if assert.NoError(t, err) { - assert.Equal(t, tc.Results, event.Data["updateResult"]) + assert.Equal(t, tc.Results, result) } }) } diff --git a/internal/pkg/manifest/validate.go b/internal/pkg/manifest/validate.go index 50d04109..7bcaaa04 100644 --- a/internal/pkg/manifest/validate.go +++ b/internal/pkg/manifest/validate.go @@ -23,7 +23,6 @@ import ( "github.com/opentracing/opentracing-go" "github.com/slackapi/slack-cli/internal/iostreams" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackerror" @@ -32,22 +31,22 @@ import ( ) // ManifestValidate validates the manifest from the project "get-manifest" hook -func ManifestValidate(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, app types.App, token string) (*logger.LogEvent, slackerror.Warnings, error) { +func ManifestValidate(ctx context.Context, clients *shared.ClientFactory, app types.App, token string) (bool, slackerror.Warnings, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "pkg.ManifestValidate") defer span.Finish() if strings.TrimSpace(token) == "" { - return nil, nil, slackerror.New(slackerror.ErrAuthToken) + return false, nil, slackerror.New(slackerror.ErrAuthToken) } _, err := clients.API().ValidateSession(ctx, token) if err != nil { - return nil, nil, slackerror.New(slackerror.ErrAuthToken).WithRootCause(err) + return false, nil, slackerror.New(slackerror.ErrAuthToken).WithRootCause(err) } slackManifest, err := clients.AppClient().Manifest.GetManifestLocal(ctx, clients.SDKConfig, clients.HookExecutor) if err != nil { - return nil, nil, slackerror.Wrap(err, slackerror.ErrAppManifestGenerate) + return false, nil, slackerror.Wrap(err, slackerror.ErrAppManifestGenerate) } // validate the manifest @@ -58,15 +57,14 @@ func ManifestValidate(ctx context.Context, clients *shared.ClientFactory, log *l } if err := HandleConnectorApprovalRequired(ctx, clients, token, err); err != nil { - return nil, nil, err + return false, nil, err } if err != nil || len(validationResult.Warnings) > 0 { - return nil, validationResult.Warnings, err + return false, validationResult.Warnings, err } - log.Data["isValid"] = true - return log.SuccessEvent(), nil, nil + return true, nil, nil } // HandleConnectorNotInstalled attempts install the certified app associated with any connector_not_installed error diff --git a/internal/pkg/manifest/validate_test.go b/internal/pkg/manifest/validate_test.go index e3b20508..e3999d17 100644 --- a/internal/pkg/manifest/validate_test.go +++ b/internal/pkg/manifest/validate_test.go @@ -21,7 +21,6 @@ import ( "github.com/slackapi/slack-cli/internal/api" "github.com/slackapi/slack-cli/internal/app" "github.com/slackapi/slack-cli/internal/hooks" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -31,7 +30,7 @@ import ( ) func Test_ManifestValidate_GetManifestLocal_Error(t *testing.T) { - ctx, clients, _, log, appMock, authMock := setupCommonMocks(t) + ctx, clients, _, appMock, authMock := setupCommonMocks(t) // Mock the manifest to return error on get manifestMock := &app.ManifestMockObject{} @@ -39,32 +38,32 @@ func Test_ManifestValidate_GetManifestLocal_Error(t *testing.T) { clients.AppClient().Manifest = manifestMock // Test - logEvent, _, err := ManifestValidate(ctx, clients, log, appMock, authMock.Token) + isValid, _, err := ManifestValidate(ctx, clients, appMock, authMock.Token) assert.Error(t, err) - assert.Nil(t, logEvent) + assert.False(t, isValid) } func Test_ManifestValidate_Success(t *testing.T) { t.Run("should return success when no errors or warnings", func(t *testing.T) { - ctx, clients, clientsMock, log, appMock, authMock := setupCommonMocks(t) + ctx, clients, clientsMock, appMock, authMock := setupCommonMocks(t) // Mock manifest validation api result with no error clientsMock.API.On("ValidateAppManifest", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(api.ValidateAppManifestResult{}, nil) // Test - logEvent, _, err := ManifestValidate(ctx, clients, log, appMock, authMock.Token) + isValid, _, err := ManifestValidate(ctx, clients, appMock, authMock.Token) assert.NoError(t, err) - assert.Equal(t, "success", logEvent.Name) + assert.True(t, isValid) }) } func Test_ManifestValidate_Warnings(t *testing.T) { t.Run("should return warnings", func(t *testing.T) { - ctx, clients, clientsMock, log, appMock, authMock := setupCommonMocks(t) + ctx, clients, clientsMock, appMock, authMock := setupCommonMocks(t) // Mock manifest validation api result with no error clientsMock.API.On("ValidateAppManifest", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(api.ValidateAppManifestResult{ @@ -76,7 +75,7 @@ func Test_ManifestValidate_Warnings(t *testing.T) { }, nil) // Test - _, warnings, err := ManifestValidate(ctx, clients, log, appMock, authMock.Token) + _, warnings, err := ManifestValidate(ctx, clients, appMock, authMock.Token) assert.NoError(t, err) assert.NoError(t, err) @@ -88,7 +87,7 @@ func Test_ManifestValidate_Warnings(t *testing.T) { func Test_ManifestValidate_Error(t *testing.T) { t.Run("should return error when there are errors", func(t *testing.T) { - ctx, clients, clientsMock, log, appMock, authMock := setupCommonMocks(t) + ctx, clients, clientsMock, appMock, authMock := setupCommonMocks(t) // Mock manifest validation api result with an error clientsMock.API.On("ValidateAppManifest", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return( @@ -100,16 +99,16 @@ func Test_ManifestValidate_Error(t *testing.T) { })) // Test - logEvent, _, err := ManifestValidate(ctx, clients, log, appMock, authMock.Token) + isValid, _, err := ManifestValidate(ctx, clients, appMock, authMock.Token) - assert.Nil(t, logEvent) + assert.False(t, isValid) assert.Error(t, err) }) } func Test_ManifestValidate_Error_ErrConnectorNotInstalled(t *testing.T) { t.Run("should try to install connector apps when there are related errors", func(t *testing.T) { - ctx, clients, clientsMock, log, appMock, authMock := setupCommonMocks(t) + ctx, clients, clientsMock, appMock, authMock := setupCommonMocks(t) // Mock manifest validation api result with an error and error details clientsMock.API.On("ValidateAppManifest", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(api.ValidateAppManifestResult{ @@ -133,7 +132,7 @@ func Test_ManifestValidate_Error_ErrConnectorNotInstalled(t *testing.T) { clientsMock.API.On("CertifiedAppInstall", mock.Anything, authMock.Token, mock.Anything).Return(api.CertifiedInstallResult{}, nil) // Test - _, _, err := ManifestValidate(ctx, clients, log, appMock, authMock.Token) + _, _, err := ManifestValidate(ctx, clients, appMock, authMock.Token) // Since we've mocked the ValidateAppManifest call to return an error, we still expect this method to return an error // despite a successful CertifiedAppInstall call. That is realistic given that a manifest can error for other reasons @@ -151,7 +150,7 @@ func Test_HandleConnectorApprovalRequired(t *testing.T) { testReason := "GIVE IT TO ME!" t.Run("should send request to approve connector", func(t *testing.T) { - ctx, clients, clientsMock, _, _, authMock := setupCommonMocks(t) + ctx, clients, clientsMock, _, authMock := setupCommonMocks(t) testErr := slackerror.New("a dummy error").WithDetails(slackerror.ErrorDetails{ slackerror.ErrorDetail{ Code: slackerror.ErrConnectorApprovalRequired, @@ -188,7 +187,7 @@ func Test_HandleConnectorApprovalRequired(t *testing.T) { }) t.Run("should not send request to approve connector if user refuses", func(t *testing.T) { - ctx, clients, clientsMock, _, _, authMock := setupCommonMocks(t) + ctx, clients, clientsMock, _, authMock := setupCommonMocks(t) testErr := slackerror.New("a dummy error").WithDetails(slackerror.ErrorDetails{ slackerror.ErrorDetail{ Code: slackerror.ErrConnectorApprovalRequired, @@ -209,7 +208,7 @@ func Test_HandleConnectorApprovalRequired(t *testing.T) { }) t.Run("should return error if request RequestAppApproval fails", func(t *testing.T) { - ctx, clients, clientsMock, _, _, authMock := setupCommonMocks(t) + ctx, clients, clientsMock, _, authMock := setupCommonMocks(t) testErr := slackerror.New("a dummy error").WithDetails(slackerror.ErrorDetails{ slackerror.ErrorDetail{ Code: slackerror.ErrConnectorApprovalRequired, @@ -232,7 +231,7 @@ func Test_HandleConnectorApprovalRequired(t *testing.T) { } // Setup -func setupCommonMocks(t *testing.T) (ctx context.Context, clients *shared.ClientFactory, clientsMock *shared.ClientsMock, log *logger.Logger, mockApp types.App, mockAuth types.SlackAuth) { +func setupCommonMocks(t *testing.T) (ctx context.Context, clients *shared.ClientFactory, clientsMock *shared.ClientsMock, mockApp types.App, mockAuth types.SlackAuth) { // Create mocks ctx = slackcontext.MockContext(t.Context()) clientsMock = shared.NewClientsMock() @@ -251,10 +250,6 @@ func setupCommonMocks(t *testing.T) (ctx context.Context, clients *shared.Client manifestMock.On("GetManifestLocal", mock.Anything, mock.Anything, mock.Anything).Return(types.SlackYaml{}, nil) clients.AppClient().Manifest = manifestMock - // Setup logger - log = &logger.Logger{} - log.Data = logger.LogData{} - // Create a dummy app mockApp = types.App{ AppID: "A123", @@ -270,5 +265,5 @@ func setupCommonMocks(t *testing.T) (ctx context.Context, clients *shared.Client TeamDomain: "workspace", } - return ctx, clients, clientsMock, log, mockApp, mockAuth + return ctx, clients, clientsMock, mockApp, mockAuth } diff --git a/internal/pkg/platform/activity.go b/internal/pkg/platform/activity.go index b155c225..1359d1af 100644 --- a/internal/pkg/platform/activity.go +++ b/internal/pkg/platform/activity.go @@ -24,7 +24,6 @@ import ( "github.com/opentracing/opentracing-go" "github.com/slackapi/slack-cli/internal/api" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackerror" @@ -47,7 +46,6 @@ const ( func Activity( ctx context.Context, clients *shared.ClientFactory, - log *logger.Logger, args types.ActivityArgs, ) error { span, ctx := opentracing.StartSpanFromContext(ctx, "cmd.activity") diff --git a/internal/pkg/platform/activity_test.go b/internal/pkg/platform/activity_test.go index 51f4e25f..2770048c 100644 --- a/internal/pkg/platform/activity_test.go +++ b/internal/pkg/platform/activity_test.go @@ -21,7 +21,6 @@ import ( "github.com/slackapi/slack-cli/internal/api" "github.com/slackapi/slack-cli/internal/config" - "github.com/slackapi/slack-cli/internal/logger" "github.com/slackapi/slack-cli/internal/shared" "github.com/slackapi/slack-cli/internal/shared/types" "github.com/slackapi/slack-cli/internal/slackcontext" @@ -240,7 +239,7 @@ func TestPlatformActivity_StreamingLogs(t *testing.T) { // Setup default mock actions clientsMock.AddDefaultMocks() - err := Activity(ctxMock, clients, &logger.Logger{}, tc.Args) + err := Activity(ctxMock, clients, tc.Args) if tc.ExpectedError != nil { require.Error(t, err) assert.Contains(t, err.Error(), tc.ExpectedError.Error(), err) diff --git a/internal/pkg/platform/localserver.go b/internal/pkg/platform/localserver.go index 5834340c..b5e20a6b 100644 --- a/internal/pkg/platform/localserver.go +++ b/internal/pkg/platform/localserver.go @@ -539,7 +539,7 @@ func (r *LocalServer) WatchActivityLogs(ctx context.Context, minLevel string) er IdleTimeoutM: 60 * 24, } // Next line runs in a ticker loop (based on TailArg above) that will return if the context is cancelled or an error occurs - return Activity(ctx, r.clients, r.log, activityArgs) + return Activity(ctx, r.clients, activityArgs) } // Message describes a web socket incoming message diff --git a/internal/pkg/platform/run.go b/internal/pkg/platform/run.go index 4a9cf36d..f6015cda 100644 --- a/internal/pkg/platform/run.go +++ b/internal/pkg/platform/run.go @@ -207,7 +207,7 @@ func Run(ctx context.Context, clients *shared.ClientFactory, log *logger.Logger, func deleteAppOnTerminate(ctx context.Context, clients *shared.ClientFactory, auth types.SlackAuth, app types.App, log *logger.Logger) { clients.IO.PrintDebug(ctx, "Removing the local version of this app from the workspace") - _, err := apps.Delete(ctx, clients, log, app.TeamDomain, app, auth) + _, _, err := apps.Delete(ctx, clients, app.TeamDomain, app, auth) if err != nil { log.Data["on_cleanup_app_install_error"] = err.Error() log.Info("on_cleanup_app_install_failed")