mirror of
https://github.com/steveiliop56/tinyauth.git
synced 2026-07-10 20:11:13 +00:00
refactor: use loop for dig provide for simpler error handling
This commit is contained in:
@@ -41,22 +41,18 @@ func (app *BootstrapApp) setupRouter() error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err := app.dig.Provide(middleware.NewContextMiddleware)
|
middlewareProvideFor := []any{
|
||||||
|
middleware.NewContextMiddleware,
|
||||||
if err != nil {
|
middleware.NewUIMiddleware,
|
||||||
return fmt.Errorf("failed to provide context middleware: %w", err)
|
middleware.NewZerologMiddleware,
|
||||||
}
|
}
|
||||||
|
|
||||||
err = app.dig.Provide(middleware.NewUIMiddleware)
|
for _, provider := range middlewareProvideFor {
|
||||||
|
err := app.dig.Provide(provider)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to provide ui middleware: %w", err)
|
return fmt.Errorf("failed to provide middleware: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = app.dig.Provide(middleware.NewZerologMiddleware)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to provide zerolog middleware: %w", err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type middlewareInput struct {
|
type middlewareInput struct {
|
||||||
@@ -67,7 +63,7 @@ func (app *BootstrapApp) setupRouter() error {
|
|||||||
ZerologMiddleware *middleware.ZerologMiddleware
|
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.ContextMiddleware.Middleware())
|
||||||
engine.Use(mi.UIMiddleware.Middleware())
|
engine.Use(mi.UIMiddleware.Middleware())
|
||||||
engine.Use(mi.ZerologMiddleware.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)
|
return fmt.Errorf("failed to provide api router group: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = app.dig.Provide(controller.NewContextController)
|
controllerProvideFor := []any{
|
||||||
if err != nil {
|
controller.NewContextController,
|
||||||
return fmt.Errorf("failed to provide context controller: %w", err)
|
controller.NewOAuthController,
|
||||||
|
controller.NewOIDCController,
|
||||||
|
controller.NewProxyController,
|
||||||
|
controller.NewUserController,
|
||||||
|
controller.NewResourcesController,
|
||||||
|
controller.NewHealthController,
|
||||||
|
controller.NewWellKnownController,
|
||||||
}
|
}
|
||||||
|
|
||||||
err = app.dig.Provide(controller.NewOAuthController)
|
for _, provider := range controllerProvideFor {
|
||||||
if err != nil {
|
err := app.dig.Provide(provider)
|
||||||
return fmt.Errorf("failed to provide oauth controller: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
err = app.dig.Provide(controller.NewOIDCController)
|
if err != nil {
|
||||||
if err != nil {
|
return fmt.Errorf("failed to provide controller: %w", err)
|
||||||
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)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type controllerInput struct {
|
type controllerInput struct {
|
||||||
|
|||||||
@@ -21,42 +21,24 @@ func (app *BootstrapApp) setupServices() error {
|
|||||||
return fmt.Errorf("failed to get label provider: %w", err)
|
return fmt.Errorf("failed to get label provider: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = app.dig.Provide(func() service.LabelProvider {
|
serviceProvideFor := []any{
|
||||||
return labelProvider
|
func() service.LabelProvider {
|
||||||
})
|
return labelProvider
|
||||||
|
},
|
||||||
if err != nil {
|
service.NewLdapService,
|
||||||
return fmt.Errorf("failed to provide label provider: %w", err)
|
service.NewTailscaleService,
|
||||||
|
service.NewAccessControlsService,
|
||||||
|
service.NewOAuthBrokerService,
|
||||||
|
service.NewAuthService,
|
||||||
|
service.NewOIDCService,
|
||||||
}
|
}
|
||||||
|
|
||||||
err = app.dig.Provide(service.NewLdapService)
|
for _, provider := range serviceProvideFor {
|
||||||
if err != nil {
|
err = app.dig.Provide(provider)
|
||||||
return fmt.Errorf("failed to provide ldap service: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
err = app.dig.Provide(service.NewTailscaleService)
|
if err != nil {
|
||||||
if err != nil {
|
return fmt.Errorf("failed to provide service: %w", err)
|
||||||
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)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type svcInput struct {
|
type svcInput struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user