...
1 package ldcontext
2
3 import (
4 "github.com/launchdarkly/go-sdk-common/v3/ldattr"
5 "github.com/launchdarkly/go-sdk-common/v3/lderrors"
6 )
7
8
9
10
11
12
13
14 type Kind string
15
16 const (
17
18 DefaultKind Kind = "user"
19
20
21 MultiKind Kind = "multi"
22 )
23
24
25
26
27 func validateSingleKind(kind Kind) (Kind, error) {
28 switch kind {
29 case "":
30 return DefaultKind, nil
31
32 case MultiKind:
33 return "", lderrors.ErrContextKindMultiForSingleKind{}
34
35 case Kind(ldattr.KindAttr):
36 return "", lderrors.ErrContextKindCannotBeKind{}
37
38 default:
39 for _, ch := range kind {
40 if (ch < 'a' || ch > 'z') && (ch < 'A' || ch > 'Z') && (ch < '0' || ch > '9') &&
41 ch != '.' && ch != '_' && ch != '-' {
42 return "", lderrors.ErrContextKindInvalidChars{}
43 }
44 }
45 return kind, nil
46 }
47 }
48
View as plain text