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 }