From dc8f6ef183f6c4d7a0f4135376d54724302abb01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Fri, 24 Sep 2021 17:30:31 +0200 Subject: [PATCH] No longer accept a logger in CreateCodespace The API layer shouldn't concern itself with logging progress to stderr. Instead, we will subsequently add progress indicators in the caller around CreateCodespace and other potentially slow commands as needed. --- cmd/ghcs/common.go | 2 +- cmd/ghcs/create.go | 2 +- cmd/ghcs/mock_api.go | 14 ++++---------- internal/api/api.go | 8 +------- 4 files changed, 7 insertions(+), 19 deletions(-) diff --git a/cmd/ghcs/common.go b/cmd/ghcs/common.go index e60fa7c96..fcdbb9f11 100644 --- a/cmd/ghcs/common.go +++ b/cmd/ghcs/common.go @@ -38,7 +38,7 @@ type apiClient interface { ListCodespaces(ctx context.Context, user string) ([]*api.Codespace, error) DeleteCodespace(ctx context.Context, user, name string) error StartCodespace(ctx context.Context, token string, codespace *api.Codespace) error - CreateCodespace(ctx context.Context, logger api.Logger, params *api.CreateCodespaceParams) (*api.Codespace, error) + CreateCodespace(ctx context.Context, params *api.CreateCodespaceParams) (*api.Codespace, error) GetRepository(ctx context.Context, nwo string) (*api.Repository, error) AuthorizedKeys(ctx context.Context, user string) ([]byte, error) GetCodespaceRegionLocation(ctx context.Context) (string, error) diff --git a/cmd/ghcs/create.go b/cmd/ghcs/create.go index c92a6edff..7e861e08d 100644 --- a/cmd/ghcs/create.go +++ b/cmd/ghcs/create.go @@ -80,7 +80,7 @@ func (a *App) Create(ctx context.Context, opts *createOptions) error { } a.logger.Print("Creating your codespace...") - codespace, err := a.apiClient.CreateCodespace(ctx, a.logger, &api.CreateCodespaceParams{ + codespace, err := a.apiClient.CreateCodespace(ctx, &api.CreateCodespaceParams{ User: userResult.User.Login, RepositoryID: repository.ID, Branch: branch, diff --git a/cmd/ghcs/mock_api.go b/cmd/ghcs/mock_api.go index 93abe7ed6..ef08c0a78 100644 --- a/cmd/ghcs/mock_api.go +++ b/cmd/ghcs/mock_api.go @@ -19,7 +19,7 @@ import ( // AuthorizedKeysFunc: func(ctx context.Context, user string) ([]byte, error) { // panic("mock out the AuthorizedKeys method") // }, -// CreateCodespaceFunc: func(ctx context.Context, logger api.Logger, params *api.CreateCodespaceParams) (*api.Codespace, error) { +// CreateCodespaceFunc: func(ctx context.Context, params *api.CreateCodespaceParams) (*api.Codespace, error) { // panic("mock out the CreateCodespace method") // }, // DeleteCodespaceFunc: func(ctx context.Context, user string, name string) error { @@ -63,7 +63,7 @@ type apiClientMock struct { AuthorizedKeysFunc func(ctx context.Context, user string) ([]byte, error) // CreateCodespaceFunc mocks the CreateCodespace method. - CreateCodespaceFunc func(ctx context.Context, logger api.Logger, params *api.CreateCodespaceParams) (*api.Codespace, error) + CreateCodespaceFunc func(ctx context.Context, params *api.CreateCodespaceParams) (*api.Codespace, error) // DeleteCodespaceFunc mocks the DeleteCodespace method. DeleteCodespaceFunc func(ctx context.Context, user string, name string) error @@ -108,8 +108,6 @@ type apiClientMock struct { CreateCodespace []struct { // Ctx is the ctx argument value. Ctx context.Context - // Logger is the logger argument value. - Logger api.Logger // Params is the params argument value. Params *api.CreateCodespaceParams } @@ -248,23 +246,21 @@ func (mock *apiClientMock) AuthorizedKeysCalls() []struct { } // CreateCodespace calls CreateCodespaceFunc. -func (mock *apiClientMock) CreateCodespace(ctx context.Context, logger api.Logger, params *api.CreateCodespaceParams) (*api.Codespace, error) { +func (mock *apiClientMock) CreateCodespace(ctx context.Context, params *api.CreateCodespaceParams) (*api.Codespace, error) { if mock.CreateCodespaceFunc == nil { panic("apiClientMock.CreateCodespaceFunc: method is nil but apiClient.CreateCodespace was just called") } callInfo := struct { Ctx context.Context - Logger api.Logger Params *api.CreateCodespaceParams }{ Ctx: ctx, - Logger: logger, Params: params, } mock.lockCreateCodespace.Lock() mock.calls.CreateCodespace = append(mock.calls.CreateCodespace, callInfo) mock.lockCreateCodespace.Unlock() - return mock.CreateCodespaceFunc(ctx, logger, params) + return mock.CreateCodespaceFunc(ctx, params) } // CreateCodespaceCalls gets all the calls that were made to CreateCodespace. @@ -272,12 +268,10 @@ func (mock *apiClientMock) CreateCodespace(ctx context.Context, logger api.Logge // len(mockedapiClient.CreateCodespaceCalls()) func (mock *apiClientMock) CreateCodespaceCalls() []struct { Ctx context.Context - Logger api.Logger Params *api.CreateCodespaceParams } { var calls []struct { Ctx context.Context - Logger api.Logger Params *api.CreateCodespaceParams } mock.lockCreateCodespace.RLock() diff --git a/internal/api/api.go b/internal/api/api.go index 4cce56894..efc24bcfb 100644 --- a/internal/api/api.go +++ b/internal/api/api.go @@ -423,14 +423,9 @@ type CreateCodespaceParams struct { Branch, Machine, Location string } -type Logger interface { - Print(v ...interface{}) (int, error) - Println(v ...interface{}) (int, error) -} - // CreateCodespace creates a codespace with the given parameters and returns a non-nil error if it // fails to create. -func (a *API) CreateCodespace(ctx context.Context, log Logger, params *CreateCodespaceParams) (*Codespace, error) { +func (a *API) CreateCodespace(ctx context.Context, params *CreateCodespaceParams) (*Codespace, error) { codespace, err := a.startCreate( ctx, params.User, params.RepositoryID, params.Machine, params.Branch, params.Location, ) @@ -452,7 +447,6 @@ func (a *API) CreateCodespace(ctx context.Context, log Logger, params *CreateCod case <-ctx.Done(): return nil, ctx.Err() case <-ticker.C: - log.Print(".") token, err := a.GetCodespaceToken(ctx, params.User, codespace.Name) if err != nil { if err == ErrNotProvisioned {