...
1 package transport
2
3 import "context"
4
5 type key string
6
7 const (
8 initpayload key = "ws_initpayload_context"
9 )
10
11
12
13 type InitPayload map[string]interface{}
14
15
16
17 func (p InitPayload) GetString(key string) string {
18 if p == nil {
19 return ""
20 }
21
22 if value, ok := p[key]; ok {
23 res, _ := value.(string)
24 return res
25 }
26
27 return ""
28 }
29
30
31
32 func (p InitPayload) Authorization() string {
33 if value := p.GetString("Authorization"); value != "" {
34 return value
35 }
36
37 if value := p.GetString("authorization"); value != "" {
38 return value
39 }
40
41 return ""
42 }
43
44 func withInitPayload(ctx context.Context, payload InitPayload) context.Context {
45 return context.WithValue(ctx, initpayload, payload)
46 }
47
48
49
50 func GetInitPayload(ctx context.Context) InitPayload {
51 payload, ok := ctx.Value(initpayload).(InitPayload)
52 if !ok {
53 return nil
54 }
55
56 return payload
57 }
58
View as plain text