github.com/pavlo67/common@v0.5.3/common/auth/auth_stub/stub_starter.go (about)

     1  package auth_stub
     2  
     3  import (
     4  	"github.com/pkg/errors"
     5  
     6  	"github.com/pavlo67/common/common"
     7  	"github.com/pavlo67/common/common/auth"
     8  	"github.com/pavlo67/common/common/config"
     9  	"github.com/pavlo67/common/common/joiner"
    10  	"github.com/pavlo67/common/common/logger"
    11  	"github.com/pavlo67/common/common/starter"
    12  )
    13  
    14  func Starter() starter.Operator {
    15  	return &authstubStarter{}
    16  }
    17  
    18  var l logger.Operator
    19  var _ starter.Operator = &authstubStarter{}
    20  
    21  type authstubStarter struct {
    22  	defaultActors []auth.Actor
    23  	interfaceKey  joiner.InterfaceKey
    24  }
    25  
    26  func (ahs *authstubStarter) Name() string {
    27  	return logger.GetCallInfo().PackageName
    28  }
    29  
    30  func (ahs *authstubStarter) Run(cfg *config.Envs, options common.Map, joinerOp joiner.Operator, l_ logger.Operator) error {
    31  	l = l_
    32  
    33  	if err := cfg.Value("actors", &ahs.defaultActors); err != nil {
    34  		return err
    35  	}
    36  
    37  	ahs.interfaceKey = joiner.InterfaceKey(options.StringDefault("interface_key", string(auth.InterfaceKey)))
    38  
    39  	authOp, err := New(ahs.defaultActors)
    40  	if err != nil {
    41  		return errors.Wrap(err, "can't init *authstub{} as auth.Operator")
    42  	}
    43  
    44  	if err = joinerOp.Join(authOp, ahs.interfaceKey); err != nil {
    45  		return errors.Wrapf(err, "can't join *authstub{} as auth.Operator with key '%s'", ahs.interfaceKey)
    46  	}
    47  
    48  	return nil
    49  }