diff --git a/internal/bootstrap/router_bootstrap.go b/internal/bootstrap/router_bootstrap.go index cbb9bdf0..636840d6 100644 --- a/internal/bootstrap/router_bootstrap.go +++ b/internal/bootstrap/router_bootstrap.go @@ -41,22 +41,18 @@ func (app *BootstrapApp) setupRouter() error { } } - err := app.dig.Provide(middleware.NewContextMiddleware) - - if err != nil { - return fmt.Errorf("failed to provide context middleware: %w", err) + middlewareProvideFor := []any{ + middleware.NewContextMiddleware, + middleware.NewUIMiddleware, + middleware.NewZerologMiddleware, } - err = app.dig.Provide(middleware.NewUIMiddleware) + for _, provider := range middlewareProvideFor { + err := app.dig.Provide(provider) - if err != nil { - return fmt.Errorf("failed to provide ui middleware: %w", err) - } - - err = app.dig.Provide(middleware.NewZerologMiddleware) - - if err != nil { - return fmt.Errorf("failed to provide zerolog middleware: %w", err) + if err != nil { + return fmt.Errorf("failed to provide middleware: %w", err) + } } type middlewareInput struct { @@ -67,7 +63,7 @@ func (app *BootstrapApp) setupRouter() error { ZerologMiddleware *middleware.ZerologMiddleware } - err = app.dig.Invoke(func(mi middlewareInput) { + err := app.dig.Invoke(func(mi middlewareInput) { engine.Use(mi.ContextMiddleware.Middleware()) engine.Use(mi.UIMiddleware.Middleware()) engine.Use(mi.ZerologMiddleware.Middleware()) @@ -93,44 +89,23 @@ func (app *BootstrapApp) setupRouter() error { return fmt.Errorf("failed to provide api router group: %w", err) } - err = app.dig.Provide(controller.NewContextController) - if err != nil { - return fmt.Errorf("failed to provide context controller: %w", err) + controllerProvideFor := []any{ + controller.NewContextController, + controller.NewOAuthController, + controller.NewOIDCController, + controller.NewProxyController, + controller.NewUserController, + controller.NewResourcesController, + controller.NewHealthController, + controller.NewWellKnownController, } - err = app.dig.Provide(controller.NewOAuthController) - if err != nil { - return fmt.Errorf("failed to provide oauth controller: %w", err) - } + for _, provider := range controllerProvideFor { + err := app.dig.Provide(provider) - err = app.dig.Provide(controller.NewOIDCController) - if err != nil { - return fmt.Errorf("failed to provide oidc controller: %w", err) - } - - err = app.dig.Provide(controller.NewProxyController) - if err != nil { - return fmt.Errorf("failed to provide proxy controller: %w", err) - } - - err = app.dig.Provide(controller.NewUserController) - if err != nil { - return fmt.Errorf("failed to provide user controller: %w", err) - } - - err = app.dig.Provide(controller.NewResourcesController) - if err != nil { - return fmt.Errorf("failed to provide resources controller: %w", err) - } - - err = app.dig.Provide(controller.NewHealthController) - if err != nil { - return fmt.Errorf("failed to provide health controller: %w", err) - } - - err = app.dig.Provide(controller.NewWellKnownController) - if err != nil { - return fmt.Errorf("failed to provide well-known controller: %w", err) + if err != nil { + return fmt.Errorf("failed to provide controller: %w", err) + } } type controllerInput struct { diff --git a/internal/bootstrap/service_bootstrap.go b/internal/bootstrap/service_bootstrap.go index 40cd0aa0..c9001c9e 100644 --- a/internal/bootstrap/service_bootstrap.go +++ b/internal/bootstrap/service_bootstrap.go @@ -21,42 +21,24 @@ func (app *BootstrapApp) setupServices() error { return fmt.Errorf("failed to get label provider: %w", err) } - err = app.dig.Provide(func() service.LabelProvider { - return labelProvider - }) - - if err != nil { - return fmt.Errorf("failed to provide label provider: %w", err) + serviceProvideFor := []any{ + func() service.LabelProvider { + return labelProvider + }, + service.NewLdapService, + service.NewTailscaleService, + service.NewAccessControlsService, + service.NewOAuthBrokerService, + service.NewAuthService, + service.NewOIDCService, } - err = app.dig.Provide(service.NewLdapService) - if err != nil { - return fmt.Errorf("failed to provide ldap service: %w", err) - } + for _, provider := range serviceProvideFor { + err = app.dig.Provide(provider) - err = app.dig.Provide(service.NewTailscaleService) - if err != nil { - return fmt.Errorf("failed to provide tailscale service: %w", err) - } - - err = app.dig.Provide(service.NewAccessControlsService) - if err != nil { - return fmt.Errorf("failed to provide access controls service: %w", err) - } - - err = app.dig.Provide(service.NewOAuthBrokerService) - if err != nil { - return fmt.Errorf("failed to provide oauth broker service: %w", err) - } - - err = app.dig.Provide(service.NewAuthService) - if err != nil { - return fmt.Errorf("failed to provide auth service: %w", err) - } - - err = app.dig.Provide(service.NewOIDCService) - if err != nil { - return fmt.Errorf("failed to provide oidc service: %w", err) + if err != nil { + return fmt.Errorf("failed to provide service: %w", err) + } } type svcInput struct {