GetNameParentTokens returns the tokens from a resource name.
(name string, tokenPrefixes ...string)
| 36 | |
| 37 | // GetNameParentTokens returns the tokens from a resource name. |
| 38 | func GetNameParentTokens(name string, tokenPrefixes ...string) ([]string, error) { |
| 39 | parts := strings.Split(name, "/") |
| 40 | if len(parts) != 2*len(tokenPrefixes) { |
| 41 | return nil, errors.Errorf("invalid request %q", name) |
| 42 | } |
| 43 | |
| 44 | var tokens []string |
| 45 | for i, tokenPrefix := range tokenPrefixes { |
| 46 | if fmt.Sprintf("%s/", parts[2*i]) != tokenPrefix { |
| 47 | return nil, errors.Errorf("invalid prefix %q in request %q", tokenPrefix, name) |
| 48 | } |
| 49 | tokens = append(tokens, parts[2*i+1]) |
| 50 | } |
| 51 | return tokens, nil |
| 52 | } |
no test coverage detected