From 59b0a060bacb278711547aa7cb144344b3e084c9 Mon Sep 17 00:00:00 2001 From: Rob Watson Date: Sat, 10 May 2025 21:18:42 +0200 Subject: [PATCH] fixup! wip: refactor: API --- cmd/client/main.go | 12 ++++------ internal/app/integration_helpers_test.go | 11 ++++----- internal/client/clientapp.go | 29 ++++++++++++------------ 3 files changed, 25 insertions(+), 27 deletions(-) diff --git a/cmd/client/main.go b/cmd/client/main.go index 89b9303..5abc7e3 100644 --- a/cmd/client/main.go +++ b/cmd/client/main.go @@ -51,18 +51,16 @@ func run() error { return fmt.Errorf("read build info: %w", err) } - app := client.NewApp( - clipboardAvailable, - domain.BuildInfo{ + app := client.New(client.NewParams{ + ClipboardAvailable: clipboardAvailable, + BuildInfo: domain.BuildInfo{ GoVersion: buildInfo.GoVersion, Version: version, Commit: commit, Date: date, }, - nil, - logger, - ) - + Logger: logger, + }) if err := app.Run(ctx); err != nil { return fmt.Errorf("run app: %w", err) } diff --git a/internal/app/integration_helpers_test.go b/internal/app/integration_helpers_test.go index b24af28..fcad882 100644 --- a/internal/app/integration_helpers_test.go +++ b/internal/app/integration_helpers_test.go @@ -52,17 +52,16 @@ func buildClientServer( logger *slog.Logger, ) (*client.App, *app.App) { buildInfo := domain.BuildInfo{Version: "0.0.1", GoVersion: "go1.16.3"} - clientApp := client.NewApp( - false, - buildInfo, - &terminal.Screen{ + clientApp := client.New(client.NewParams{ + BuildInfo: buildInfo, + Screen: &terminal.Screen{ Screen: screen, Width: 160, Height: 25, CaptureC: screenCaptureC, }, - logger, - ) + Logger: logger, + }) // TODO: use buildAppParams srvApp := app.New(app.Params{ diff --git a/internal/client/clientapp.go b/internal/client/clientapp.go index 34162bb..572a5c4 100644 --- a/internal/client/clientapp.go +++ b/internal/client/clientapp.go @@ -24,21 +24,22 @@ type App struct { logger *slog.Logger } -// NewApp creates a new App instance. -// -// TODO: params -func NewApp( - clipboardAvailable bool, - buildInfo domain.BuildInfo, - screen *terminal.Screen, - logger *slog.Logger, -) *App { +// NewParams contains the parameters for the App. +type NewParams struct { + ClipboardAvailable bool + BuildInfo domain.BuildInfo + Screen *terminal.Screen + Logger *slog.Logger +} + +// New creates a new App instance. +func New(params NewParams) *App { return &App{ - bus: event.NewBus(logger), - clipboardAvailable: clipboardAvailable, - buildInfo: buildInfo, - screen: screen, - logger: logger, + bus: event.NewBus(params.Logger), + clipboardAvailable: params.ClipboardAvailable, + buildInfo: params.BuildInfo, + screen: params.Screen, + logger: params.Logger, } }