github.com/Unheilbar/quorum@v1.0.0/plugin/qlight/service.go (about) 1 package qlight 2 3 import "context" 4 5 type PluginTokenManager interface { 6 TokenRefresh(ctx context.Context, currentToken, psi string) (string, error) 7 PluginTokenManager(ctx context.Context) (int32, error) 8 } 9 10 //go:generate mockgen -source=service.go -destination service_mockery.go -package qlight 11 var _ PluginTokenManager = &MockPluginTokenManager{} 12 13 type PluginTokenManagerDeferFunc func() (PluginTokenManager, error) 14 15 type ReloadablePluginTokenManager struct { 16 DeferFunc PluginTokenManagerDeferFunc 17 } 18 19 func (d *ReloadablePluginTokenManager) TokenRefresh(ctx context.Context, currentToken, psi string) (string, error) { 20 p, err := d.DeferFunc() 21 if err != nil { 22 return "", err 23 } 24 return p.TokenRefresh(ctx, currentToken, psi) 25 } 26 27 func (d *ReloadablePluginTokenManager) PluginTokenManager(ctx context.Context) (int32, error) { 28 p, err := d.DeferFunc() 29 if err != nil { 30 return 0, err 31 } 32 return p.PluginTokenManager(ctx) 33 }