github.com/s7techlab/cckit@v0.10.5/examples/token/service/config/token.go (about) 1 package config 2 3 import ( 4 "errors" 5 6 "google.golang.org/protobuf/types/known/emptypb" 7 8 "github.com/s7techlab/cckit/router" 9 ) 10 11 var ( 12 ErrTokenAlreadyExists = errors.New(`token already exists`) 13 ) 14 15 type TokenGetter interface { 16 GetToken(router.Context, *TokenId) (*Token, error) 17 GetDefaultToken(router.Context, *emptypb.Empty) (*Token, error) 18 } 19 20 func TokenByTypeGroup(tokenType *TokenType, tokenGroup *TokenGroup) []string { 21 return append([]string{tokenType.GetName()}, tokenGroup.GetName()...) 22 } 23 24 func CreateDefaultToken( 25 ctx router.Context, configSvc ConfigServiceChaincode, createToken *CreateTokenTypeRequest) ([]string, error) { 26 27 existsTokenType, _ := configSvc.GetTokenType(ctx, &TokenTypeId{Name: createToken.Name}) 28 if existsTokenType != nil { 29 return nil, ErrTokenAlreadyExists 30 } 31 32 // init token on first Init call 33 tokenType, err := configSvc.CreateTokenType(ctx, createToken) 34 if err != nil { 35 return nil, err 36 } 37 38 token := TokenByTypeGroup(tokenType, nil) 39 40 if _, err = configSvc.SetConfig(ctx, &Config{DefaultToken: token}); err != nil { 41 return nil, err 42 } 43 44 return token, nil 45 }