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  }